Gridview 使用CheckboxModel的多个网格
我已经定义了xtype,它是一个简单的网格,有两列和selModel:Ext.selection.CheckboxModelGridview 使用CheckboxModel的多个网格,gridview,extjs,checkbox,Gridview,Extjs,Checkbox,我已经定义了xtype,它是一个简单的网格,有两列和selModel:Ext.selection.CheckboxModel Ext.define('MySimpleType', { extend: 'Ext.grid.Panel', alias: 'widget.MySimpleXType', autoScroll: true, store: mySimpleStore, selModel: Ext.create("Ext.selection.Check
Ext.define('MySimpleType',
{
extend: 'Ext.grid.Panel',
alias: 'widget.MySimpleXType',
autoScroll: true,
store: mySimpleStore,
selModel: Ext.create("Ext.selection.CheckboxModel", {
checkOnly : true
}),
border: false,
columns: [
{
header: 'Code',
flex: 1,
sortable: true,
dataIndex: 'Code'
},
{
header: 'Name',
flex: 1,
width: 80,
sortable: true,
dataIndex: 'Name'
}
]
});
当我尝试在一个面板中多次使用这个xtype时:不是为每次使用创建新的CheckboxModel,而是每个xtype使用已经创建的CheckboxModel的相同实例。在这种情况下,第一个网格中会出现几个复选框列,它们的行为不正确。
你能告诉我怎么解决这个问题吗?
最简单的解决方案是为每次使用xtype创建新的Ext.selection.CheckboxModel实例,但它会粘贴代码副本。解决方案是将selModel定义移动到网格的initComponent属性:
Ext.define('MySimpleType',
{
extend: 'Ext.grid.Panel',
alias: 'widget.MySimpleXType',
autoScroll: true,
store: mySimpleStore,
border: false,
columns: [
{
header: 'Code',
flex: 1,
sortable: true,
dataIndex: 'Code'
},
{
header: 'Name',
flex: 1,
width: 80,
sortable: true,
dataIndex: 'Name'
}
],
initComponent: function(){
this.selModel = Ext.create("Ext.selection.CheckboxModel", { checkOnly : true });
this.callParent(arguments); //it's necessary to call in order to initialize parent components of this grid
}
});