dojo DataGridを使用してデータを表示するWebページがあります。時には、ユーザーはさらに分析するために特定のセルからコンテンツをコピーする必要がありますが、ブラウザの右クリックイベントがdataGridで無効になっているので、コンテンツをクリップボードにコピーするにはどうすればよいでしょうか? ありがとうございます!dojoグリッドのセル内容をコピーする方法
デビッド
dojo DataGridを使用してデータを表示するWebページがあります。時には、ユーザーはさらに分析するために特定のセルからコンテンツをコピーする必要がありますが、ブラウザの右クリックイベントがdataGridで無効になっているので、コンテンツをクリップボードにコピーするにはどうすればよいでしょうか? ありがとうございます!dojoグリッドのセル内容をコピーする方法
デビッド
あなたは空想何も必要ありません。私はこれを自分で行わなければなりませんでした。非常に複雑なソリューションを数多く見て、ドキュメントを読み、最も簡単な方法を見つけました。グリッドはこれを行うためのもので、エンハンスドグリッドにメニューを追加するだけです。 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");
}
あなたのグリッドを作成するとき、あなたは真のselectable
を設定することができます。
<div dojotype="dojox.grid.DataGrid" selectable="true" ....>
またはプログラム的に:
var grid = new dojox.grid.DataGrid({ selectable: true, ... });
これは道場1.3とアップ、私は思うが、道場1.2.2であります –