extjs网格中的initPlugin是什么
我有两个行操作,所以我尝试在下面添加行操作extjs网格中的initPlugin是什么,extjs,extjs3,Extjs,Extjs3,我有两个行操作,所以我尝试在下面添加行操作 var Action1 = { id : 'id_1', header : 'Action1', keepSelection : true, actions : [{
var Action1 = {
id : 'id_1',
header : 'Action1',
keepSelection : true,
actions : [{
iconIndex:'ACTION',
qtipIndex:'QTIP1'
}]
};
this.ObjAction1 = new Ext.ux.grid.RowActions(Action1);
this.ObjAction1.on('action',this.myfunc, this);
this.grid.initPlugin(this.ObjAction1);
this.grid.colModel.addColumn(this.ObjAction1);
this.grid.colModel.getColumnAt(4).width = 100;
// Actions column position
this.grid.colModel.moveColumn(this.grid.colModel.getColumnCount()-1, 3);
var Action2 = {
id : 'id_2',
header : 'Action2',
keepSelection : true,
actions : [{
iconIndex:'ACTION',
qtipIndex:'QTIP'
}]
};
this.ObjAction2 = new Ext.ux.grid.RowActions(Action2);
this.ObjAction2.on('action',this.myfunc, this);
this.grid.initPlugin(this.ObjAction2);
this.grid.colModel.addColumn(this.ObjAction2);
this.grid.colModel.getColumnAt(3).width = 100;
this.grid.colModel.moveColumn(this.grid.colModel.getColumnCount()-1, 2);
在我上面的代码中,我使用了两次initPlugin()
函数(this.grid.initPlugin(this.ObjAction1);和this.grid.initPlugin(this.ObjAction2);
),但当我两次使用initPlugin()时,我的网格弹出窗口没有正确关闭。我正在尝试查找initPlugin()
,但是当您想要在完整的ext代码库上执行研究时,无法找到,只需按住CTRL+F组合键即可。如您所见,initPlugin
在Ext.Component
中声明一次,在同一类的构造函数中只调用两次。您可以称之为易于跟踪的代码位
代码如下:
initPlugin : function(p){
if(p.ptype && !Ext.isFunction(p.init)){
p = Ext.ComponentMgr.createPlugin(p);
}else if(Ext.isString(p)){
p = Ext.ComponentMgr.createPlugin({
ptype: p
});
}
p.init(this);
return p;
},
它做的不多,它实例化作为配置对象或字符串传递的插件,并最终调用插件的init
方法period。天哪,这不就是所谓的“纯洁”吗?无论如何,这段代码很容易理解,很明显,您的问题并不是因为您调用了两次initPlugin
。您每次在不同的实例上调用它,并且每次仅调用一次。。。这样就不会扰乱他们的状态。我简单地瞥了一眼“代码”,并且(毫不奇怪),它似乎没有将其状态混合到原型中。。。此外,即使我不理解您所展示的全部代码,我也没有看到您自己正在破坏状态的任何危险信号。您可能会遇到一个在Ext3中并不罕见的问题,尤其是在它的“ux”(纯洁和坦率是近亲…)中