Search code examples
gridviewgridextjs3

rowBody refresh loosing the inner grid, on editing the main grid row. extjs 3.. can i re-render the inner grid..?


I am using enablerowbody:true , inserting a div inside rowBody, using getRowClass, and rendering a grid inside this div. Initially its loading fine (grid inside grid),

But the problem arises when i am editing the main row content, after which, the getRowClass firing again, causing recreation of the div, hence loosing the rendered grid..

How to re-render the inner grid OR avoid recreation of the div..?


Solution

  • As saki suggested, Create the innerGrid as

    record.innerGrid=new Ext.grid.GridPanel();
    

    and then re-render the innerGrid on rowupdated listener of gridView.

    listeners:{ rowupdated:function( view, firstRow, record ){ var tools=record.innerGrid.tools; record.innerGrid.rendered=false; record.innerGrid.tools=null; record.innerGrid.render(Ext.get('rowBodyDivId')); record.innerGrid.tools=tools; } }

    NOTE:Holds True only in case when inner grid is not editable ..

    still trying for Editable innerGrid (attached/fired events are throwing error)