我有一个包含项目的 DataGrid。当您右键单击其中一行时,会显示一个 Dojo 上下文菜单,其中包含删除该行的选项。如果您尝试右键单击 DataGrid 的空白区域,则不会显示上下文菜单....但是,如果您首先右键单击一行,然后单击取消菜单选项(什么都不做),或者如果您左键单击页面上的其他位置(隐藏上下文菜单)并右键单击 DataGrid 的空白区域,显示上下文菜单,如果您单击上下文菜单中的删除项目选项,它会删除您右键单击的最后一个项目。
为什么当您右键单击 DataGrid 的空白区域时才显示上下文菜单,但仅在您已经右键单击 DataGrid 中的某个项目之后才显示?
任何提示将不胜感激。到目前为止,这是我的代码:
var selectedItem; // This has to be declared "globally" outside of any functions
function onRowContextMenuFunc(e) {
grid5_rowMenu.bindDomNode(e.grid.domNode);
selectedItem = e.grid.getItem(e.rowIndex);
}
function gridRowContextMenu_onClick(e) {
store3.deleteItem(selectedItem);
}
.
<div dojoType="dijit.Menu" id="grid5_rowMenu" jsId="grid5_rowMenu" style="display: none;">
<div dojoType="dijit.MenuItem" onClick="gridRowContextMenu_onClick">Delete</div>
<div dojoType="dijit.MenuItem">Cancel</div>
</div>
.
<div id="grid" dojoType="dojox.grid.DataGrid" jsId="grid5" store="store3" structure="layoutStructure" rowsPerPage="40" onRowContextMenu="onRowContextMenuFunc"></div>