如何仅取消选择网格中的某些行?

时间:2019-07-18 17:14:27

标签: extjs grid

我有一个选中了所有行的网格,有一个名为CODE的列,而我只需要单击CODE为1的按钮后取消选择那些行,然后选择其他行即可。

我尝试使用deselectAll();但这会取消选择网格中的所有行。

1 个答案:

答案 0 :(得分:1)

您可以在deselect上使用selectionModel方法来删除对项目的选择。您可以传递要取消选择的记录数组或记录索引。下面是示例代码。

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['name', 'email', 'phone']
});

var userStore = Ext.create('Ext.data.Store', {
    model: 'User',
    data: [{
            name: 'Lisa'
        }, {
            name: 'Bart'
        }, {
            name: 'Homer'
        }
    ]
});

Ext.create('Ext.grid.Panel', {
    renderTo: Ext.getBody(),
    store: userStore,
    storeId: 'mystore',
    width: 300,
    height: 400,
    title: 'Application Users',
    listeners: {
        afterrender: function() {
            this.getSelectionModel().select(1, true); 
        }
    },
    tbar: [
        {
            xtype: 'button',
            text: "Deselect",
            handler: function() {
                this.up('grid').getSelectionModel().deselect(1); //deseleting record on 1st index
            }
        }    
    ],
    columns: [{
        text: 'Name',
        width: 300,
        sortable: false,
        hideable: false,
        dataIndex: 'name'
    }]
});