具有选择模型的Ext.Net网格面板只读

时间:2018-05-14 08:53:41

标签: extjs

我有一个带有复选框选择模型的网格面板。我还有一组初始数据来填充网格:检查从代码后面插入的一些行(在页面加载中)(如下图所示);

enter image description here

我的问题是,在初始插入行之后,我需要使复选框无法检查。

有什么建议吗?

我无法使用gridPanel.setReadOnly(true)

BeforeDeselect Handler="return false;" 

(因为这样,初始插入的行也会取消选中)。

由于

1 个答案:

答案 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