我有一个带有复选框选择模型的网格面板。我还有一组初始数据来填充网格:检查从代码后面插入的一些行(在页面加载中)(如下图所示);
我的问题是,在初始插入行之后,我需要使复选框无法检查。
有什么建议吗?
我无法使用gridPanel.setReadOnly(true)
和
BeforeDeselect Handler="return false;"
(因为这样,初始插入的行也会取消选中)。
由于
答案 0 :(得分:0)
您可以执行以下代码
var store = Ext.create('Ext.data.Store', {
fields: ['id', 'name', 'email', 'phone'],
data: [{
id: 1,
name: 'Lisa',
email: 'lisa@simpsons.com',
phone: '555-111-1224'
}, {
id: 2,
name: 'Bart',
email: 'bart@simpsons.com',
phone: '555-222-1234'
}, {
id: 3,
name: 'Homer',
email: 'homer@simpsons.com',
phone: '555-222-1244'
}, {
id: 4,
name: 'Marge',
email: 'marge@simpsons.com',
phone: '555-222-1254'
}]
});
var records = [store.getById(1), store.getById(3)];
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: store,
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}],
height: 200,
width: 400,
renderTo: Ext.getBody(),
selModel: {
selType: 'checkboxmodel'
},
listeners: {
boxready: function() {
this.getSelectionModel().select(records, false, true);
},
selectionchange: function() {
this.getSelectionModel().deselectAll(true);
this.getSelectionModel().select(records, false, true);
}
}
});
记录是您希望一直选择的行
注意:它在ExtJs而不是Ext.Net