2009-07-28 10 views
0

dojo DataGridを使用してデータを表示するWebページがあります。時には、ユーザーはさらに分析するために特定のセルからコンテンツをコピーする必要がありますが、ブラウザの右クリックイベントがdataGridで無効になっているので、コンテンツをクリップボードにコピーするにはどうすればよいでしょうか? ありがとうございます!dojoグリッドのセル内容をコピーする方法

デビッド

答えて

0

あなたは空想何も必要ありません。私はこれを自分で行わなければなりませんでした。非常に複雑なソリューションを数多く見て、ドキュメントを読み、最も簡単な方法を見つけました。グリッドはこれを行うためのもので、エンハンスドグリッドにメニューを追加するだけです。 1つは、グリッドコンストラクターが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

あなたのグリッドを作成するとき、あなたは真のselectableを設定することができます。

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

またはプログラム的に:

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

これは道場1.3とアップ、私は思うが、道場1.2.2であります –

関連する問題