我必须删除在我的网格中选择某些行的能力。
我使用 CheckboxModel
selModel: Ext.create( 'Ext.selection.CheckboxModel', {
mode: 'SIMPLE'
} )
要禁用选择,我使用 beforeselect 事件
beforeselect: function ( row, model, index ) {
if ( model.data.id == '3' ) {
return false;
}
}
为了隐藏复选框,我使用特定的类作为行和 css 规则
viewConfig: {
getRowClass: function( record, index ) {
var id = record.get('id');
return id == '3' ? 'general-rule' : '';
}
}
.general-rule .x-grid-row-checker {
left: -9999px !important;
position: relative;
}
也许这不是达到预期结果的最佳方式,但对于我的任务来说它是有效的。
但是,出现了另一个问题:网格标题中的全选/取消全选复选框停止工作。当您第一次单击此 ckechbox 时,除了不应选择的行之外的所有行都将被选中,但如果您再次单击,则没有任何反应。显然,系统会尝试重新选择所有行,因为有未选择的行。
有没有更好的方法来解决问题?或者如何用这种方法解决问题。
唯一想到的 - 你需要重写复选框的全选/取消全选功能,但我不确定我该怎么做。
提前感谢您的回答,如果我提出的问题不符合规则,我深表歉意。