【问题标题】:dojox.grid.DataGrid: how to access data from a click event?dojox.grid.DataGrid:如何从点击事件访问数据?
【发布时间】:2011-05-22 17:12:14
【问题描述】:

我正在使用 Dojo 1.5(包括 dojox)。我有一个 dojox.grid.DataGrid ,其中每一行代表一个用户。当我单击一行时,我想重定向到 /users/USER_ID 之类的 URL。用户 ID 是网格中的字段之一,所以我需要在 onRowClick 回调中获取被点击行的用户 ID。

点击事件包含一个 rowIndex 属性,事实上,我在其他地方发现了一篇(相当旧的)帖子,建议我应该能够做到:

var row = dijit.byId('grid').model.getRow(e.rowIndex);
/* (Then grab the 0th field of the row, which is the user ID.) */

(抱歉,我已经丢失了网址。)

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

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

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

【问题讨论】:

    标签: dojo dojox.grid dojox.grid.datagrid


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢!那成功了。两个后续问题:1)你能推荐一个关于如何完成这样的任务的高级文档的好来源吗?我一直在努力在单个 API 上找到超出 Javadoc 样式文档级别的任何内容,这让我感到沮丧。 dojocampus.org 似乎是最好的,但它有点参差不齐。 2) 在 Dojo 中,调用带有前导下划线的方法是否被认为是合法的?我曾假设它们是私有 API。再次感谢,-qdw
    • 1) 我同意,这些文档分布在许多不同的站点上,并且像您一样,我发现 dojocampus 是其中一个更好的。虽然我发现 www.sitepen.com/blog 对于更高级的任务非常有启发性,但它不仅仅是与道场相关的主题。而且 www.dojotoolkit.org/api 最近进行了一次非常漂亮的改造。然后当然是 StackOverflow :) 2) 我不会说它完全合法。使用这些功能时,您会遇到风险,即它会在没有警告的情况下从一个版本删除/重命名为另一个版本,这与 api 记录的方法不同。
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2016-04-10
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多