0

除了一件事,我已经能够让 DataGrid 做我想做的一切。我正在尝试将 onRowClick 事件绑定到将执行某些操作的常规 javascript 函数。我使用的是 Dojo 1.7.2,所以 connect(object,event,method) 不起作用。我尝试使用新的 on(object,event...) 无济于事。我究竟做错了什么?

在标签之间但低于 changeValue()[我编写并已知工作的函数] 和 dojo.require... 换句话说,块中的最后一件事。我知道 on 方法的语法有问题,但不知道是什么。

var ngrid = dijit.byId('grid');
dojo.on(ngrid,"onRowClick",changeValue());
4

4 回答 4

2

修复您的代码;因为我相信你想要绑定的函数是实际的 changeValue 而不是它可能返回的,试试这个

dijit.byId('grid').connect("onRowClick", changeValue)

.on对*Something 上的前缀 * 产生了一些魔力,因此请尝试使用 .connect 代替。最佳做法是通过对象本身注册侦听器,以便在网格被破坏时断开连接。上面的调用作为网格对象的扩展,因此您不应将网格引用作为第一个参数传递。

于 2012-05-22T19:44:23.223 回答
1

这是该on方法的正确语法

您必须删除事件名称字符串的“on”部分

var ngrid = dijit.byId('grid');
dojo.on(ngrid,"rowClick",changeValue());
于 2013-01-31T14:22:15.037 回答
0

jsid ="mygrid"属性分配给您的 Datagrid 。通过你jsid的道场连接你不必做dijit.byId()

 dojo.connect(mygrid, "onRowClick", changeValue); 
于 2012-05-23T06:50:41.197 回答
0

与@mschr 的回答类似,这里也是如何获取与单击的行关联的数据。

dojo.connect(grid, "onRowClick", function(e) {
     var dataItem = grid.selection.getSelected();
     // call you change method here with dataItem
});

和一个例子

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

于 2012-05-22T19:58:54.470 回答