【发布时间】:2012-03-02 13:26:25
【问题描述】:
我用 extjs 4 创建了一个网格。 selection.CheckboxModel 被实现为。这意味着无论您在何处单击特定行,都会选择/取消选择该行。现在我想在最后一列禁用此选择,因为它包含自定义按钮。 (如果单击按钮,我不想选择行)。
你知道怎么做吗?
提前非常感谢!
【问题讨论】:
标签: extjs checkbox grid extjs4 selection
我用 extjs 4 创建了一个网格。 selection.CheckboxModel 被实现为。这意味着无论您在何处单击特定行,都会选择/取消选择该行。现在我想在最后一列禁用此选择,因为它包含自定义按钮。 (如果单击按钮,我不想选择行)。
你知道怎么做吗?
提前非常感谢!
【问题讨论】:
标签: extjs checkbox grid extjs4 selection
这实际上是一个棘手的小问题,只是因为缺少 Sencha 文档。
CheckboxModel 确实有一个从Ext.selection.RowModel 继承的beforeselect 事件。但是,没有简单的方法来获取列索引,因为坦率地说,这就是 RowModel 的重点。
但是,Ext.view.Table(您的网格将继承)中有一个名为 beforecellmousedown 的未记录事件。这是事件参数:
所以你可能会尝试这样的事情:
viewConfig: {
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts){
if(cellIdx === indexOfLastColumnInGrid){
return false;
}
}
}
}
单元格和行索引都是从零开始的。
【讨论】:
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') {
return false;
}
}
}
感谢埃里克。这是最终的解决方案!
【讨论】:
【讨论】: