道场 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/data 吗?请注意,我不能使用 grid.selection.getSelected() 因为那是用户最后左键单击的任何行。