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