1

我有EditorGridPanel,我希望根据同一行的其他列值启用-禁用单元格值,并且我正在使用Extjs 3。当我试图在 Google 上找到解决方案时,我发现我可以使用RowEditing 插件。我不想使用这个插件,有没有其他方法可以做到这一点?

我想在单击编辑按钮时启用和禁用此功能,因此我可以在“beforeedit”事件中执行此操作。在这里,我遇到了一个问题,即我如何能够访问一个特定的单元格对象以及如何启用和禁用该单元格对象。有启用-禁用整个网格列的方法,但是有没有任何方法可以返回该特定单元格对象并启用-禁用该单元格对象?

有谁知道有没有办法做到这一点,请告诉我。谢谢。

4

2 回答 2

0

更新:

正如我之前考虑的那样,“beforeedit”事件是针对行触发的,但对于我们单击的每个单元格都会触发。所以我首先将字段名称作为“var fldname = e.field;” 然后我为匹配的字段返回 false 以使其禁用 Ex: var fldname= e.field;

onBeforeEdit : function(e) {
var fldname= e.field;
if(fldname == "FirstName" || fldname = "LastName"){
return false;
}

所以它禁用网格的“FirstName”和“LastName”列。

于 2012-10-04T12:17:27.943 回答
0

如果我正确理解你的意图,你应该看看这里:http ://docs.sencha.com/ext-js/3-4/#!/api/Ext.grid.EditorGridPanel-event-beforeedit

而且,据我了解,这是您一直在寻找的方法:http ://docs.sencha.com/ext-js/3-4/#!/api/Ext.grid.GridView-method-getCell

将这两者结合在一起,您应该具有与 EditorGridPanel 的“beforeedit”事件的侦听器类似的功能。

onBeforeEdit : function(e) {
    var htmlCell = e.grid.getView().getCell(e.row, e.cell);
    Ext.fly(htmlCell).addClass('disabled');
}
于 2012-10-03T16:14:38.100 回答