fre*_*yle 1 tree extjs treegrid extjs4.1
我用插件CellEditing 定义了一个treeGrid
Ext.define('MyExample', {
extend: 'Ext.tree.Panel',
id: 'example',
alias: 'example',
....
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1,
listeners: {
beforeedit: function(plugin, edit){
alert('don't run second time');
}
}
})
],
...
Run Code Online (Sandbox Code Playgroud)
当我点击这个按钮时我会有一个按钮会调用下面的窗口(此窗口上面有treeGrid)
Ext.create('Ext.window.Window', {
title: 'Phân x? lý',
modal:true,
height: 500
width: 500
layout: 'border',
...
item[
{
title: 'example',
region: 'center',
xtype: 'example', // that here
layout: 'fit'
}
]
Run Code Online (Sandbox Code Playgroud)
一切都在第一次工作,但当我第一次关闭窗口,然后单击按钮再次调用窗口,然后CellEditting仍在工作,但听众不工作?
如何解决这个问题
编辑
请参阅我在http://jsfiddle.net/E6Uss/中的
示例代码
第一次点击按钮时.一切运作良好

但是,当我关闭示例窗口并再次打开它时,我尝试再次单击以阻止单元格我得到一个类似的错误

如何解决这个错误?谢谢
这里的问题是你在插件数组中使用Ext.create作为树网格.这具有创建它一次并将结果adhoc附加到您定义的类的效果.
如果关闭窗口,窗口中的所有资源都将被销毁.第二次实例化树面板时,插件不在那里.看看这个小提琴:我看你的问题是什么.看看http://jsfiddle.net/jdflores/E6Uss/1/
{
ptype : 'cellediting',
clicksToEdit: 1,
listeners: {
beforeedit: function(plugin, edit){
console.log('EDITOR');
if (edit.record.get('block')) {
alert('this cell have been blocked');
return false;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)