启用 - 在Ext.grid.EditorGridPanel中禁用单列的单元格

时间:2012-10-03 07:12:53

标签: extjs3

我有 EditorGridPanel ,我希望启用 - 禁用单元格值取决于同一行的其他列值,我使用 Extjs 3 。当我试图在Google上找到解决方案时,我发现了这一点 我可以使用 RowEditing插件。我不想使用这个插件,那么还有另一种方法吗?

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

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

2 个答案:

答案 0 :(得分: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');
}

答案 1 :(得分: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”列。