1

我们使用的是 ExtJS 4.2,所以这就是我这个问题的背景。

我需要在网格中有一个列:

  1. 在可以选择/取消选择的每一行上显示一个复选框。它的目的是跟踪用户选择,而不是与底层商店数据同步。
  2. 标题中有一个复选框,允许用户选择或取消选择网格中的所有行。
  3. 可以在呈现页面时根据特定条件(用户权限或数据)隐藏/删除。

我尝试了以下方法:

  1. SelModel - 将满足第 2 项要求,但一旦定义就无法操作(请参阅http://www.sencha.com/forum/showthre...selectionModel)。

  2. CheckColumn - 满足第 3 项要求,但在列标题中没有复选框(请参阅http://www.sencha.com/forum/showthread.php?265924)。

有没有办法让我实现我想要的?

提前致谢

海西

4

2 回答 2

1

请参阅我对这个问题的回答: ExtJS 4 select multiple CheckColumn checkboxes with checkbox header

您需要做的补充是,在网格存储的“更新”事件中,您需要手动创建代码,根据记录中的新值选择具有网格 selectionModel 的行。

于 2013-09-26T17:15:14.740 回答
0

我有相同的要求并且能够使用“Ext.selection.CheckboxModel”功能(Ext 4.2)。基本上,我通过配置对象覆盖了渲染器。我正在使用 Sencha Architect 3,这是生成的代码:

selModel: Ext.create('Ext.selection.CheckboxModel', me.processMyCheckboxSelectionModel3({}))

processMyCheckboxSelectionModel1: function(config) {
        config.renderer = function(value, metaData, record, rowIndex, colIndex, store, view) {
            var status = record.get('Status');
            if (status  === 'Failed') {
                        var baseCSSPrefix = Ext.baseCSSPrefix;
                        metaData.tdCls = baseCSSPrefix + 'grid-cell-special ' + baseCSSPrefix + 'grid-cell-row-checker';
                        return '<div class="' + baseCSSPrefix + 'grid-row-checker">&#160;</div>';
            } else {
                        return '';
            }

        };
        return config;
}

当我希望渲染器显示复选框时,渲染器返回的内容是从Reimius 的答案复制而来的,与这种方法的唯一区别是我使用的是 Ext 4.2 内置的“Ext.selection.CheckboxModel”。

于 2014-06-11T07:27:36.130 回答