带有复选框列的 Ext JS 网格面板

Posted

技术标签:

【中文标题】带有复选框列的 Ext JS 网格面板【英文标题】:Ext JS grid panel with checkbox column 【发布时间】:2011-06-22 09:16:04 【问题描述】:

我的页面中有一个网格,上面设置了 CheckboxModel。它显示了名称和复选框,但我不知道如何将商店中的布尔列绑定到选择模型中的列。我找到了使用 CheckColumn 的示例,但这会引发一个错误,即它没有构造函数。必须是 v4 中的更改。非常感谢您对此提供帮助。

Ext.define('Roles', 
    extend: 'Ext.data.Model',
    fields: ['Id', 'Name', 'Selected'],
    proxy: 
        type: 'ajax',
        url: '/tpn/Types/AjaxList',
        reader: 
            type: 'json',
            root: 'rows',
            totalProperty: 'total',
            successProperty: 'success'
        ,
        listeners: 
            exception: function (proxy, type, action, options, response, arg) 
                Ext.MessageBox.alert('Error', Ext.decode(type.responseText).error);
            
        

    
);

var roleStore = Ext.create('Ext.data.Store', 
    model: 'Roles'
);

var sm = Ext.create('Ext.selection.CheckboxModel');

var grid = Ext.create('Ext.grid.Panel', 
    store: roleStore,
    selModel: sm,
    columns: [
        header: 'Name',
        dataIndex: 'Name',
        flex: 1
    ],
    renderTo: 'RoleGrid',
    autoHeight: false,
    height: 200,
    frame: false
);

【问题讨论】:

【参考方案1】:

您可以在网格的 afterrender 事件(或绑定存储的 load 事件上)放置一个侦听器,以遍历存储以获取布尔检查值和调用 GridPanel.selectRecords() 方法来选择 UI 中的所有记录。这将检查他们的复选框。

【讨论】:

以上是关于带有复选框列的 Ext JS 网格面板的主要内容,如果未能解决你的问题,请参考以下文章

包含要添加动态列的复选框的 GWT EXT 网格?

如何在 ExtJS3.4 的网格面板中添加复选框列

禁用带有复选框的网格面板

Ext JS 网格面板:如何在鼠标悬停时显示内容

带有复选框列的 Kendo Angular 2 网格

Ext JS 网格面板间隔移除