Ext.grid rowexpander的展開與收縮


這里寫Ext.grid.Panel的展開與收縮。

1. 確保在grid存在rowexpander對象:

plugins: [{ ptype: 'rowexpander', rowBodyTpl: ['<div id="{Id}" class="x-inner-container"></div>'] }],

取得grid的一些信息:

var oGrid = Ext.getCmp(oGridId);
var oStore = oGrid.getStore();
var expander = oGrid.plugins[0];

2. 在grid有數據的情況下,獲取到某行row是否展開的狀態,true為展開狀態。這個是自己初學的時候,摸索着來用的,后來,看別人的文章多了,用得多了,就熟悉了。

//大概的取得當前行的展開狀態,不完全准確,我剛開始的時候就是用這個的,
//后面對grid的操作多了,什么添加行,刪除行等等的,用着用就出問題了,不適用了
expander.recordsExpanded["ext-record-" + (rowIndex+1)]
var expandKey = store.data.items[rowIndex].internalId;
或
var expandKey = store.getAt(rowIndex).internalId;
expander.recordsExpanded[expandKey]

 3. grid展開或收縮,如果是展開狀態時,將會收縮,就是反着來吧,這個很像Jquery的隱藏或顯示toggle方法。

expander.toggleRow(rowIndex, store.getAt(rowIndex));

4. 全部收縮。全部展開的話,只要改動一下判斷條件就可以了。

function CollapseAll(){
    var oGrid = Ext.getCmp(oGridId);
    var oStore = oGrid.getStore();
    var expander = oGrid.plugins[0];
    for(var i=0,l= oStore.getCount(); i<l; i++){
        if(expander.recordsExpanded[oStore.getAt(i).internalId])
            expander.toggleRow(i, oStore.getAt(i));
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM