我有2行动作,所以我尝试添加行动屁股吼叫
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);
在我上面的代码中我使用了2次initPlugin()function(this.grid.initPlugin(this.ObjAction1); and this.grid.initPlugin(this.ObjAction2);
)但是当我使用initPlugin()两次时,我的网格弹出窗口没有正确关闭。我试着找initPlugin()
但不能
答案 0 :(得分:1)
如果要对完整的ext代码库进行研究,只需按CTRL + F即可获得ext-all-debug-w-comments.js
的版本。正如您在那里看到的那样,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
方法,句点。 OMG,是不是应该被称为“纯度”?无论如何,这段代码很容易理解,很明显你的问题不是来自你两次调用initPlugin
的事实。你每次都在不同的实例上调用它,每次只调用一次......这样就不会弄乱它们的状态。我对Ext.ux.grid.RowActions
'代码进行了简短的一瞥,并且(不出所料),它似乎没有将其状态混合到原型中......此外,即使我不了解整个代码,你也是'重新显示,我没有看到任何红旗,你自己也打破了这个状态。你可能正面临着一个在Ext 3中并不那么不寻常的错误案例,特别是在它的“ux”中(纯洁和坦率是近亲......)。