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

Posted

技术标签:

【中文标题】如何仅取消选择网格中的某些行?【英文标题】:How to deselect only some rows in a grid? 【发布时间】:2019-07-18 17:14:27 【问题描述】:

我有一个选中所有行的网格,有一个名为 CODE 的列,我只需要在单击 CODE 为 1 的按钮后取消选择这些行并选择其他行。

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

【问题讨论】:

我发现了如何使用 deselect(row);谢谢 【参考方案1】:

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

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'
    ]
);

【讨论】:

以上是关于如何仅取消选择网格中的某些行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ExtJS 4.1 中禁用网格中的某些行

如何从 EXT 网格中复选框选择模型中的所有视图中删除复选框选择

仅选择一行后如何更改数据网格中的文本,FLEX

如何在java中的某些事件上取消选择Jlist项目

Xamarin:如何删除网格中特定行中的项目

如何使用行ID在gridx网格中选择一个复选框?