可能重複:
how to show/ hide column in a grid panelExtJS的顯示/隱藏欄動態
在一個Ext JS的網格,我有隱藏的要求/示出基於列的一些COND =真/假。
我可以動態設置列的'hidden'屬性嗎?
可能重複:
how to show/ hide column in a grid panelExtJS的顯示/隱藏欄動態
在一個Ext JS的網格,我有隱藏的要求/示出基於列的一些COND =真/假。
我可以動態設置列的'hidden'屬性嗎?
可以使用beforerender
事件隱藏的列。在調用渲染函數顯示網格之前調用該事件。事件函數採用一個參數,它是網格本身。從這個網格對象中,您可以獲取網格的列模型並調用setHidden
方法來隱藏適當的列。從網格對象中,您還可以將商店附加到網格上進行檢查。
下面是代碼怎麼會:
listeners: {
'beforerender' : function(grid) {
store = grid.getStore();
if(your-condition) {
cm = grid.getColumnModel();
cm.setHidden(0,true);
}
}
}
我喜歡你要去的地方,但如果它是一個更圓整的方法就好了:當用戶隱藏一個列,捕獲事件,在localStorage中存儲隱藏某個列的標誌。任何網格加載腳本都會根據localStorage內部的內容設置列的可見性。 – IEnumerator 2011-10-19 19:42:42
你可以輕鬆地擴展上述方法來做到這一點! – 2011-10-19 20:08:04
我最終意識到extjs有一位國家經理。打開它,並砰!我用戶可配置的網格。 – IEnumerator 2011-10-20 21:46:17
如果($( '選擇 ')是(':隱藏')){} your_code
這不是JQuery。我們正在討論ExtJs – 2013-04-18 22:48:24
您可以檢查並在存儲加載隱藏:
store.load({
callback: function(){
// access raw json data and check some columns to hide or not
if(store.getProxy().getReader().rawData.myColumn.hide) {
grid.columns[1].setVisible(false);
}
if(store.getProxy().getReader().rawData.myAnotherColumn.hide) {
grid.columns[4].setVisible(false);
}
}
});
難道這列/網後已經構成?或者您是否知道在創建列定義時是否要顯示它? – Jonas 2011-03-21 03:19:32
構建網格後,當商店加載時,商店將包含一個類似於此imho的隱藏/顯示標誌 – Victor 2011-03-21 04:41:16
:http://stackoverflow.com/questions/6042138/extjs4-what-is-the-equivalent-to-the -grid-columnmodel – 2012-06-06 14:28:25