У меня есть 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>