我试图弄清楚如何Ext.grid.Panel
用不同的selType
.
实际上,我需要一个允许我选择单个单元格和行(带有复选框)的网格。在第一种情况下,它需要将selType
config 定义为,cellmodel
但在第二种情况下,它需要将其selType
配置为checkboxmodel
. 不幸的是,selType
接受字符串而不是数组。
那么,有没有办法selType
在单个网格上定义不同的?
我试图弄清楚如何Ext.grid.Panel
用不同的selType
.
实际上,我需要一个允许我选择单个单元格和行(带有复选框)的网格。在第一种情况下,它需要将selType
config 定义为,cellmodel
但在第二种情况下,它需要将其selType
配置为checkboxmodel
. 不幸的是,selType
接受字符串而不是数组。
那么,有没有办法selType
在单个网格上定义不同的?
好的,可以在同一个网格中同时配置 aselType
和 a 。selModel
这是一个例子:
// Store
var store = Ext.create ('Ext.data.Store', {
fields: ['name', 'surname'] ,
data: [
{name: 'foo', surname: 'bar'} ,
{name: 'too', surname: 'tar'} ,
{name: 'zoo', surname: 'zar'} ,
{name: 'coo', surname: 'car'} ,
{name: 'boo', surname: 'bar'}
]
});
然后是网格:
// Dual selection grid
Ext.create ('Ext.grid.Panel', {
title: 'My Grid' ,
store: store ,
width: 300 ,
height: 300 ,
renderTo: Ext.getBody () ,
selModel: Ext.create ('Ext.selection.CheckboxModel') ,
selType: 'cellmodel' ,
plugins: {
ptype: 'cellediting' ,
clicksToEdit: 1
} ,
columns: [{
text: 'Name' ,
dataIndex: 'name' ,
editor: {
xtype: 'textfield' ,
allowBlank: false
}
} , {
text: 'Surname' ,
dataIndex: 'surname' ,
editor: {
xtype: 'textfield'
}
}]
});
但也可以遵循A1rPun建议的方式,以便更好地使用selType
层次结构:
// Base grid with cellediting plugin and cellmodel as selType
Ext.define ('CellEditGrid', {
extend: 'Ext.grid.Panel' ,
selType: 'cellmodel' ,
plugins: {
ptype: 'cellediting'
clicksToEdit: 1
}
});
// Adds the checkboxmodel selType to the base CellEditGrid
Ext.define ('DualSelectionGrid', {
extend: 'CellEditGrid' ,
selType: 'checkboxmodel' ,
multiSelect: true
});
// Finally, we got our dual selection grid (cellmodel and checkboxmodel)
Ext.create ('DualSelectionGrid', {
title: 'My Grid' ,
store: store ,
width: 300 ,
height: 300 ,
renderTo: Ext.getBody () ,
columns: [{
text: 'Name' ,
dataIndex: 'name' ,
editor: {
xtype: 'textfield' ,
allowBlank: false
}
} , {
text: 'Surname' ,
dataIndex: 'surname' ,
editor: {
xtype: 'textfield'
}
}]
});
不能!
grid.getSelectionModel().getCurrentPosition().column
不是当前的编辑器。