首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将onRowClick绑定到DoJo数据网格(dojox.grid.DataGrid)

将onRowClick绑定到DoJo数据网格(dojox.grid.DataGrid)
EN

Stack Overflow用户
提问于 2012-05-23 03:30:02
回答 4查看 5.7K关注 0票数 0

我已经能够让DataGrid做所有我想做的事情,除了一件事。我正在尝试将onRowClick事件绑定到一个常规的javascript函数,该函数将执行某些操作。我使用的是Dojo 1.7.2,因此connect(对象、事件、方法)无法工作。我尝试使用新的on(对象,事件...)无济于事。我做错了什么?

在标签之间,但在changeValue()下面,这是我写的一个函数,我知道它的工作原理和dojo.require...换句话说,块中的最后一件事。我知道on方法的语法有问题,但不知道是什么问题。

代码语言:javascript
复制
var ngrid = dijit.byId('grid');
dojo.on(ngrid,"onRowClick",changeValue());
EN

回答 4

Stack Overflow用户

发布于 2012-05-23 03:44:23

修复您的代码;因为我相信您想要绑定的函数是实际的changeValue,而不是它可能返回的内容,所以尝试如下

代码语言:javascript
复制
dijit.byId('grid').connect("onRowClick", changeValue)

.on对前缀*on*做了一些魔法处理,所以试着用.connect代替。最佳实践是通过对象本身注册侦听器,以便在网格被破坏时断开连接。上面的调用是对网格对象的扩展,所以你不应该把网格引用作为第一个参数来传递。

票数 2
EN

Stack Overflow用户

发布于 2013-01-31 22:22:15

这是on方法的正确语法

您必须删除事件名称字符串中的'on‘部分

代码语言:javascript
复制
var ngrid = dijit.byId('grid');
dojo.on(ngrid,"rowClick",changeValue());
票数 1
EN

Stack Overflow用户

发布于 2012-05-23 03:58:54

与@mschr的答案类似,这里也介绍了如何获取与单击的行相关联的数据。

代码语言:javascript
复制
dojo.connect(grid, "onRowClick", function(e) {
     var dataItem = grid.selection.getSelected();
     // call you change method here with dataItem
});

下面是一个例子

http://jsfiddle.net/cswing/T27hv/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10708794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档