我已经能够让DataGrid做所有我想做的事情,除了一件事。我正在尝试将onRowClick事件绑定到一个常规的javascript函数,该函数将执行某些操作。我使用的是Dojo 1.7.2,因此connect(对象、事件、方法)无法工作。我尝试使用新的on(对象,事件...)无济于事。我做错了什么?
在标签之间,但在changeValue()下面,这是我写的一个函数,我知道它的工作原理和dojo.require...换句话说,块中的最后一件事。我知道on方法的语法有问题,但不知道是什么问题。
var ngrid = dijit.byId('grid');
dojo.on(ngrid,"onRowClick",changeValue());发布于 2012-05-23 03:44:23
修复您的代码;因为我相信您想要绑定的函数是实际的changeValue,而不是它可能返回的内容,所以尝试如下
dijit.byId('grid').connect("onRowClick", changeValue).on对前缀*on*做了一些魔法处理,所以试着用.connect代替。最佳实践是通过对象本身注册侦听器,以便在网格被破坏时断开连接。上面的调用是对网格对象的扩展,所以你不应该把网格引用作为第一个参数来传递。
发布于 2013-01-31 22:22:15
这是on方法的正确语法
您必须删除事件名称字符串中的'on‘部分
var ngrid = dijit.byId('grid');
dojo.on(ngrid,"rowClick",changeValue());发布于 2012-05-23 03:58:54
与@mschr的答案类似,这里也介绍了如何获取与单击的行相关联的数据。
dojo.connect(grid, "onRowClick", function(e) {
var dataItem = grid.selection.getSelected();
// call you change method here with dataItem
});下面是一个例子
http://jsfiddle.net/cswing/T27hv/
https://stackoverflow.com/questions/10708794
复制相似问题