我有一個網格,其中包含每行的操作列。這個動作欄是一個編輯圖標,當用戶點擊編輯圖標時,我將啓動一些websocket事件,最終將流向目前連接到應用程序的其他用戶。我想要做的是灰掉其他用戶的這個編輯圖標。所有這些代碼正在工作,除了:我不知道如何訪問實際行的操作列對象。Ext JS:獲取特定行的操作列
我可以利用網格的視圖,並抓住個別節點,然後設置某種CSS的,像這樣訪問:
var rowHtml = this.getView().getNode(index);
if (rowHtml) {
var rowDom = Ext.fly(rowHtml);
if (rowDom) {
rowDom.down('.someclass').removeCls('enabled').addCls('disabled');
}
}
這應該工作,但是我也想更新的提示,一般來說,我只是想能夠訪問這個元素。
所以,我想主要的問題是,當這個動作列被創建時,它被創建爲一個按鈕或其他一些Ext JS元素?該API指出defaultType子組件是網格列,但我想這不是什麼這個動作專欄真的是什麼?另外,有沒有一種簡單的方式作爲Ext JS類來訪問這個項目?
編輯:我曾看到下面的線程,但它們更多處理渲染......我行已經呈現行:
Hide Icon in Action Column for Particular Row
How to Disable Action Column Item for a Single Row
因此,我的解決方案唯一的問題是,隱藏不會保持設置,如果視圖刷新...我試過使用'Ext.get'而不是'Ext.fly',但無論如何,當視圖刷新,圖標顯示備份......我需要發生的是當我使用hide方法時圖標的HTML被設置,因此當視圖刷新時,它會將HTML視爲隱藏。有什麼建議麼? – incutonez
我最終放棄了這種方法,並對ActionColumn的[items]使用'getClass'方法(http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.column.Action -cfg項)。相關我的[其他問題](http://stackoverflow.com/questions/22229168/ext-js-saving-dom-manipulation-of-a-grid-row/22229919#22229919)。 – incutonez