Sie brauchen nichts Besonderes. Ich musste das selbst machen und nachdem ich so viele zu komplexe Lösungen gesehen hatte, las ich die Dokumentation und fand den einfachsten Weg. Das Raster sollte dies tun, es erfordert lediglich, dass der Entwickler Menüs zu einem EnhancedGrid hinzufügt. Ein "Gotcha" ist, dass der Grid-Konstruktor eine Div-ID enthalten muss. Es kann nicht mit dijit.placeAt() eingefügt werden.
Lösung:
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");
}
dies Dojo 1.3 und höher, denke ich, aber mit Dojo 1.2.2 –