道场1.5。我有一个增强的网格,它的 rowMenu 定义如下:
<div dojoType="dijit.Menu" id="rowMenu" style="display: none;">
<div dojoType="dijit.MenuItem" id="menuUsers">Add/Edit Users</div>
</div>
我监听该菜单项的 onclick,如下所示:
dojo.connect(dijit.byId("menuUsers"), "onClick", addEditUsers);
如果我尝试在 addEditUsers 中使用 e.rowIndex,它是未定义的。我能够弄清楚如何获取用户右键单击的行的唯一方法是通过单独的行监听器:
dojo.connect(dijit.byId("grid"), "onRowContextMenu", rowContextMenu);
从 rowContextMenu() 中,e.rowIndex 可用,因此我可以使用获取行数据
var item = e.grid.getItem(e.rowIndex);
console.log(e.grid.store.getValue(item, 'name')); // this will show the value of a 'name' column for the row the user right clicked.
所以我可以用它来切换全局/对象(例如 currentContextItem),但似乎必须有一种更简单的方法。是否没有直接方法从上下文菜单项监听器获取 rowIndex/数据?请注意,我无法使用 grid.selection.getSelected(),因为这是用户上次左键单击的任何行。
最佳答案
据我所知,没有其他解决方案。事实上,我几个月前就问过同样的问题,这是我得到的唯一解决方案。
关于javascript - dojo EnhancedGrid 上下文菜单 - 如何从菜单项的 onclick 事件获取 rowIndex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933308/