我创建了一个带有extjs 4的网格。selection.CheckboxModel被实现。这意味着无论您单击哪一行,该行都会被选中/取消选择。现在我想在最后一列禁用此选择,因为它包含自定义按钮。 (如果点击一个按钮,我不想选择该行)。ExtJS 4 - Grid - 禁用特定列的rowselection
任何想法的如何做到这一点?
非常感谢提前!
我创建了一个带有extjs 4的网格。selection.CheckboxModel被实现。这意味着无论您单击哪一行,该行都会被选中/取消选择。现在我想在最后一列禁用此选择,因为它包含自定义按钮。 (如果点击一个按钮,我不想选择该行)。ExtJS 4 - Grid - 禁用特定列的rowselection
任何想法的如何做到这一点?
非常感谢提前!
这实际上是一个棘手的小问题,如果仅仅是因为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;
}
}
}
}
两个单元格和行索引是从零开始的。
亲爱的Aliaksei,谢谢你的回复。 – user1245146 2012-03-02 14:30:06
在'之前选择'内,我如何检查点击哪个列? – user1245146 2012-03-02 14:30:53
listeners: {
beforecellmousedown: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
if (String(eOpts.getTarget()) == '[object HTMLButtonElement]') {
return false;
}
}
}
Thanx Eric。这是我最终的解决方案!
谢谢Eric!我会试一试! – user1245146 2012-03-02 20:16:15