ExtJS 3.4.0 GridPanel 有条件地禁用行

Posted

技术标签:

【中文标题】ExtJS 3.4.0 GridPanel 有条件地禁用行【英文标题】:ExtJS 3.4.0 GridPanel conditional disabling of rows 【发布时间】:2013-07-08 06:57:15 【问题描述】:

我有一个带有 CheckColumn 的 GridPanel。如果在数据加载时未选中该复选框,我需要禁用整行,从而完全防止数据修改。我尝试在 viewConfig 中使用 getRowClass 方法如下:

        viewConfig: 
            getRowClass: function (record, rowIndex, rowPrms, ds) 
                //If the Sign-Off checkbox is unchecked, disable entire row.
                if (record.get('signOff') == 0) return 'disabled-row';
            
        

这不起作用。有什么指点吗?

【问题讨论】:

【参考方案1】:

反映您的变化。您需要在网格中包含一个配置,即disableSelection : true

【讨论】:

这仍然不能阻止我选中复选框。我也需要禁用复选框选择。【参考方案2】:

我发现 checkColumn 里面没有 checkBox 对象。它只播放使用 css 选中/取消选中的各种复选框图像。我创建了自己的禁用版本的复选框图像,添加了一些自定义 css,并有条件地将它们加载到 checkColumn.Prototype 的渲染器中。问题解决了!

【讨论】:

以上是关于ExtJS 3.4.0 GridPanel 有条件地禁用行的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs3带条件的分页查询的实现

在 Extjs 中删除 GridPanel 的 headertoolbar

ExtJS 4.1 GridPanel 错位列

ExtJs - 通过 Gridpanel 的索引获取行

ExtJS Gridpanel 列宽 + forcefit

ExtJS GridPanel numberColumn - 排序问题