Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

extjs rowexpander how to expand all

I'm using Ext.ux.grid.RowExpander

var expander = new Ext.ux.grid.RowExpander({
  tpl : new Ext.Template(
 '<p>{history}</p>'
 )
});

it's used in my grid:

 var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            expander,
        ...

Now i want all expander rows to be expanded by deafult.

I'm trying to use expander.expandRow(grid.view.getRow(0)); (i think if i make it, i'll be able to use a for loop :) but i get an error

this.mainBody is undefined @ ***/ext/ext-all.js:11

Please, help me to expand all rows of my grid! Thanks!

like image 217
k102 Avatar asked Feb 24 '23 14:02

k102


2 Answers

You can do this with a loop, it's quite simple...

for(i = 0; i <= pageSize; i++) {
   expander.expandRow(i);
}

Where pageSize is the number of records per page in your grid. Alternatively you could use the store's count (probably a more scalable solution)...

for(i = 0; i <= grid.getStore().getCount(); i++) {
    expander.expandRow(i);
}
like image 174
JamesHalsall Avatar answered Mar 05 '23 18:03

JamesHalsall


In 4.1.3 i use this method

function expand() {
    var expander = grid.plugins[0];
    var store = grid.getStore();

    for ( i=0; i < store.getCount(); i++ ) {
        if (expander.isCollapsed(i)) {
            expander.toggleRow(i, store.getAt(i));
        }
    }
}
like image 40
krevedko Avatar answered Mar 05 '23 18:03

krevedko