ExtJs-复选框选择模型,每行禁用复选框

人气:314 发布:2022-10-16 标签: checkbox extjs selectionmodel extjs-grid

问题描述

我有一个带有复选框选择模型的网格。

Ext.define('Mb.view.ship.OrdersGrid', {
    extend: 'Ext.grid.Panel',
    selType: 'checkboxmodel',
    selModel: {
        injectCheckbox: 0,
        pruneRemoved: false
    },
    ...

根据字段中的值,某些行不应该是可选的。

在普通列中,我可以用renderer干预显示,用css(metadata.tdCls)隐藏单元格内容,但对于自动生成的复选框列,我找不到方法来逐行禁用或隐藏复选框。

有人知道如何做到这一点吗?

推荐答案

只需使用网格的beforeselect事件。返回FALSE,将不允许选择。选中the documentation。

Ext.define('Mb.view.ship.OrdersGrid', {
    extend: 'Ext.grid.Panel',
    selType: 'checkboxmodel',
    selModel: {
        injectCheckbox: 0,
        pruneRemoved: false
    },

    listeners: {

        beforeselect: function(grid, record, index, eOpts) {
            if (record.get('yourProperty')) {//replace this with your logic.
                return false;
            }
        }

}
..........
如果您真的想隐藏该复选框,您可以为您的网格行添加CSS类,并且可以使用它们来隐藏它们。检查this answer以获取解决方案。

966