我正在使用Dojo 1.5(包括dojox)。我有一个dojox.grid.DataGrid,其中每一行代表一个用户。当我单击一行时,我想重定向到像/ users / USER_ID这样的URL。用户ID是网格中的一个字段,因此我需要在onRowClick回调中执行的操作是获取所单击行的用户ID。
click事件包含一个rowIndex属性,事实上,我在其他地方发现了一条(相当古老的)帖子,表明我应该能够做到:
var row = dijit.byId('grid').model.getRow(e.rowIndex);
/* (Then grab the 0th field of the row, which is the user ID.) */
(抱歉,我丢失了网址。)
但是我的网格对象没有模型属性。那是怎么回事? API有变化吗? (我的网格当然填充了数据,我可以看到,点击,按列排序等等。)
所以我现在被困住了。请注意,BTW,使用rowIndex直接访问网格的底层dojo.data.ItemFileReadStore是行不通的。那是因为网格是可排序的,因此无法保证网格的行与商店的行的顺序相同。
任何提示都将深表感谢。我希望这个问题很清楚,并且足够笼统,任何答案都可以帮助其他人摆脱困境。非常感谢。
答案 0 :(得分:2)
我有类似的情况,我抓住这样的值:
onRowClick: function(e) {
open_link(my_grid._getItemAttr(e.rowIndex, 'object_path'));
}
在这种情况下,my_grid是对datagrid的引用,object_path是我存储对象路径的列。 open_link当然是我的自定义函数,正如它所暗示的那样,请求服务器路径。
所以只需更改细节以适应您的情况,您应该没问题。