2009-07-28 6 views
0

dojo DataGrid를 사용하여 데이터를 표시하는 웹 페이지가 있습니다. 때로는 사용자가 추가 분석을 위해 특정 셀의 내용을 복사해야하지만 dataGrid에서 브라우저의 오른쪽 클릭 이벤트가 비활성화되어 있으므로 내용을 클립 보드에 복사하는 가장 좋은 방법은 무엇입니까? 미리 감사드립니다. 당신이 당신의 그리드를 만들 때dojo grid에서 셀 내용을 복사하는 방법

데이비드

답변

0

당신은 공상 아무것도 필요하지 않습니다. 나는 이것을 직접해야만했으며 너무 많은 복잡한 솔루션을보고 난 후에 문서를 읽고 가장 쉬운 방법을 찾았습니다. 그리드는 개발자가 EnhancedGrid에 메뉴를 추가하기 만하면됩니다. 하나의 "잡았다"는 그리드 생성자는 반드시 div ID를 포함해야한다. dijit.placeAt()를 사용하여 삽입 할 수 없습니다.

솔루션 :

function someFunction(){ 
    var selRegionMenu = createSelectedRegionMenu(resultsGrid); 
        resultsGrid = new dojox.grid.EnhancedGrid({ 
         id: "issueHistoryResultsGrid", 
         selectable: true, 
         plugins:{menus:{rowMenu:selRegionMenu, selectedRegionMenu:selRegionMenu}}, 
         store: gridStore, 
         clientSort: true, 
         structure: gridLayout, 
         height: '450px' 
        }, "gridDiv"); 
} 

function createSelectedRegionMenu(resultsGrid) 
      { 
       var selRegionMenu = new dijit.Menu({id:"selectedRegionMenu"}); 
       selRegionMenu.addChild(new dijit.MenuItem({label:"Copy", iconClass: "dijitEditorIcon dijitEditorIconCopy", onClick:copySelectedContent})); 
       selRegionMenu.startup(); 
       return selRegionMenu; 
      } 



function copySelectedContent(){ 
     var historyGrid = dijit.byId("issueHistoryResultsGrid"); 
     //var selected = historyGrid.selected; 
     //var didSucceed = window.clipboardData.setData("Text",selected); 
     CopiedTxt = document.selection.createRange(); 

     CopiedTxt.execCommand("Copy"); 
    } 
7

, true로 selectable을 설정할 수 있습니다.

<div dojotype="dojox.grid.DataGrid" selectable="true" ....> 

또는 프로그래밍 방식 :

var grid = new dojox.grid.DataGrid({ selectable: true, ... }); 
+0

이 도장 1.3까지, 나는 생각하지만, 도장 1.2.2 함께 –

관련 문제