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”(纯洁和坦率是近亲…)中