ExtJS 4 - 网格 - 禁用特定列的行选择

时间:2012-03-02 13:26:26

标签: extjs checkbox grid extjs4 selection

我创建了一个带有extjs 4的网格。选择.CheckboxModel实现为。这意味着只要您单击特定行,就会选中/取消选择该行。现在我想在最后一列上禁用此选项,因为它包含自定义按钮。 (如果单击按钮,我不想选择行。)

任何想法都是如何做到的?

非常感谢提前!

3 个答案:

答案 0 :(得分:9)

这实际上是一个棘手的小问题,只是因为缺少Sencha文档。

CheckboxModel确实有一个从beforeselect继承的Ext.selection.RowModel事件。但是,没有简单的方法来获取列索引,因为坦率地说,这是RowModel的重点。

但是,Ext.view.Table(您的网格将继承)中有一个名为beforecellmousedown的未记录事件。这是事件参数:

  1. view:网格视图
  2. cell:单击的单元格
  3. cellIndex:单元格索引
  4. 记录:与单元格关联的商店记录
  5. 行:单元格的行
  6. rowIndex:行的索引
  7. eOpts:标准事件选项事件
  8. 所以你可能会尝试这样的事情:

    viewConfig: {
        listeners: {
            beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){
                if(cellIdx === indexOfLastColumnInGrid){
                    return false;
                }
            }
        }
    }
    

    单元格和行索引都是从零开始的。

答案 1 :(得分:1)

listeners: {
    beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
        if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') {
            return false;
        }
    }
}

Thanx Eric。这是我的最终解决方案!

答案 2 :(得分:0)