2012-10-03 34 views
1

我有EditorGridPanel我想啓用停用功能單元值取決於同一行的其它列值,我使用EXTJS 3。當我嘗試在Google上找到解決方案時,我發現 我可以使用RowEditing插件。我不想使用這個插件,那麼還有另一種方法來做到這一點?啓用-禁用單個列的細胞Ext.grid.EditorGridPanel

我想在啓用和禁用時點擊編輯按鈕,這樣我就可以在「beforeedit」事件上做到這一點。 這裏我遇到了問題,我如何能夠訪問一個特定的單元格對象,以及如何能夠啓用和禁用該單元格對象。有方法來啓用 - 禁用網格的整列 ,但是是否有任何方法返回該特定單元對象並啓用 - 禁用此單元對象?

有誰知道有沒有辦法做到這一點,請讓我知道。謝謝。

回答

0

更新時間:

正如我以前考慮「beforeedit」事件是火行,但它的火,我們單擊每個單元格。所以我首先得到域名爲「var fldname = e.field;」然後我返回false爲匹配的字段,使其禁用爲例:var fldname = e.field;

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

因此它禁用網格的「FirstName」和「LastName」列。

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'); 
} 
+0

感謝您的回覆medvarztis,它現在適用於我。正如我以前考慮「beforeedit」事件是行火,但它是我們點擊每個單元格的火。因此,我首先將字段名稱作爲**「var fldname = e.field;」**,然後我將匹配字段返回false以使其禁用Ex: –