有一个编辑器网格面板 我正在尝试向单元格单击事件添加侦听器。我尝试过不同的方式:
gridPanel.addListener('cellclick',myfunction);
在网格内:
listeners: {
cellclick: myfunction
}
我试过在selectionModel对象中这样做 他们都没有工作 哪里可以问题?
答案 0 :(得分:0)
您必须使用cellmousedown
网格面板或选择模型的单元格selectionchange
。
答案 1 :(得分:0)
addListener有效。我有一些语法错误。 仍然将侦听器添加为参数
答案 2 :(得分:0)
如果你不能将监听器添加为配置参数,可能是因为你遇到了回调函数不在范围内的问题,类似于:
> var obj = { greetMe: this.sayHi, sayHi: function(){ console.log('hi'); }};
undefined
> obj.greetMe();
TypeError: Property 'greetMe' of object #<Object> is not a function
> obj.greetMe
undefined
在第一行中,this
仍在引用定义对象时的全局(读取:窗口)对象。所以this.sayHi === window.sayHi === undefined
。定义Ext配置对象时会发生同样的事情。尝试定义回调内联:
> var obj = { greetMe: function(){ console.log('hi'); }};
undefined
> obj.greetMe()
hi
其他选择:
答案 3 :(得分:0)
对于行选择,我将它放在选择模型上并直接双击网格。这很好但但我必须警告你,如果你不阻止默认事件,你会得到可怕的内存消耗。
Ext.onReady(函数(){
requestGrid.getSelectionModel().on('rowselect', handleRowSelect);
requestGrid.on('rowdblclick', handleDoubleClick);
}
如果我阅读它会有所帮助:)我的解决方案是行选择而不是单元格选择,但它可能非常有效。