首页 > 解决方案 > 根据状态检查 extjs 网格中的行

问题描述

我目前正在开发一个使用 ExtJS 的项目。

对于项目的这一部分,我必须在现有网格上实现一个复选框列,网格的每一行都可以具有由 record.data.codiceStato 确定的状态。

以下是部分代码:

selectionModel = Ext.create('Ext.selection.CheckboxModel', {
    checkOnly: true,
    listeners: {
        select: function (sm, idx, rec) {
            alert("Look ma!")
        }
    },
    renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
        if (record.data.codiceStato == 'RS' || record.data.codiceStato == 'AN' || record.data.codiceStato == 'NP')
            return '<div style="margin-left: -1px;" class="' + Ext.baseCSSPrefix + 'grid-row-checker"> </div>';
        else
            return '';
    }
});

现在,如您所见,我只在具有精确状态(RS, AN, NP) 的某些行上呈现复选框。我的问题是,当我单击标题复选框时,网格中的所有行都被选中,还有那些不处于应该能够被选中的状态的行(状态不同于 NP RS AN)。有没有什么办法解决这一问题?先感谢您。

标签: checkboxextjsgridextjs4.1

解决方案


可以使用 检测标题复选框rowIndex

if (rowIndex != 0) {
    if (record.data.codiceStato == 'RS' || record.data.codiceStato == 'AN' || record.data.codiceStato == 'NP') {
        return '<div style="margin-left: -1px;" class="' + Ext.baseCSSPrefix + 'grid-row-checker"> </div>';
    }
    else {
        return '';
    }
}
else {
    return '';
}

推荐阅读