2

我正在使用 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.) */

(对不起,我已经丢失了 URL。)

但是我的网格对象没有模型属性。那是怎么回事?API 有变化吗?(我的网格当然填充了数据,我可以查看、单击、按列排序等等)。

所以我现在被困住了。请注意,顺便说一句,使用 rowIndex 直接访问网格的底层 dojo.data.ItemFileReadStore 是行不通的。这是因为网格是可排序的,所以不能保证网格的行与商店的行顺序相同。

任何提示将不胜感激。我希望这个问题很清楚,并且足够笼统,以至于任何答案都可以帮助我陷入困境的其他人。非常感谢。

4

1 回答 1

2

我有一个类似的场景,我抓住了这样的价值:

onRowClick: function(e) {
   open_link(my_grid._getItemAttr(e.rowIndex, 'object_path'));
}

在这种情况下,my_grid 是对数据网格的引用,而 object_path 是我存储对象路径的列。open_link 当然是我的一个自定义函数,正如它所暗示的,它请求一个服务器路径。

所以只要改变细节以适应你的情况,你应该没问题。

于 2010-12-09T08:46:04.243 回答