javascript - dojo EnhancedGrid 上下文菜单 - 如何从菜单项的 onclick 事件获取 rowIndex?

标签 javascript dojo dojox.grid.datagrid

道场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/

相关文章:

javascript - 类(class)移除的过渡不起作用

javascript - 文本区域最大长度值不起作用

javascript - closeOnContentClick 什么都不做 - 使用 Ajax 收集

javascript - Cookie 不随 CORS Web 请求一起发送

javascript - 创建 dijit.tooltipdialog 时如何设置位置。

javascript - 使用 Angular Scenario 测试 'any web page'

javascript - dojo:qwest.js 的 multipleDefine 错误

javascript - 如何添加读/写 customRestService 以支持 Dojo DataGrid 中的编辑?

javascript - 混合搭配声明式和程序化声明? (道场/JS)

javascript - 在多个地方放置相同的 dojo datagrid