Gridview 编辑主栅格行时,松开内部栅格进行rowBody刷新。ExtJS3。。我可以重新渲染内部网格吗。。?

Gridview 编辑主栅格行时,松开内部栅格进行rowBody刷新。ExtJS3。。我可以重新渲染内部网格吗。。?,gridview,grid,extjs3,Gridview,Grid,Extjs3,我正在使用enablerowbody:true,在rowBody中插入一个div,使用getRowClass,并在这个div中呈现一个网格。最初,它在网格中加载精细网格 但是,当我编辑主行内容时,问题就出现了,在此之后,getRowClass再次触发,导致重新创建div,从而丢失渲染网格 如何重新渲染内部网格或避免重新创建div…?是的,不幸的是,这是默认行为。您需要侦听网格视图的事件,并将内部网格的元素移动到安全的位置,例如,在侦听器中附加到文档体但不可见 然后,在这种情况下,必须将内部栅格移

我正在使用enablerowbody:true,在rowBody中插入一个div,使用getRowClass,并在这个div中呈现一个网格。最初,它在网格中加载精细网格

但是,当我编辑主行内容时,问题就出现了,在此之后,getRowClass再次触发,导致重新创建div,从而丢失渲染网格


如何重新渲染内部网格或避免重新创建div…?

是的,不幸的是,这是默认行为。您需要侦听网格视图的事件,并将内部网格的元素移动到安全的位置,例如,在侦听器中附加到文档体但不可见

然后,在这种情况下,必须将内部栅格移回外部栅格rowBody


您不应该只是重新创建内部网格,而不进行适当的销毁以避免内存泄漏。

正如saki所建议的,将内部网格创建为

record.innerGrid=new Ext.grid.GridPanel();
然后在gridView的行上重新渲染innerGrid

听众:{ 行更新:函数视图,第一行,记录{ var tools=record.innerGrid.tools; record.innerGrid.rendered=false; record.innerGrid.tools=null; record.innerGrid.renderExt.get'rowBodyDivId'; record.innerGrid.tools=tools; } }

注意:仅当内部网格不可编辑时才适用


仍在尝试可编辑的innerGrid连接/触发的事件正在抛出错误,请记录。innerGrid=new Ext.grid.EditorGridPanel。因此,我有组件,但不可见。。问题是,我无法将其移回外部网格rowBody。怎么做。。?我试过record.InnerGrid.renderExt.get'divId';和record.innerGrid.getView.refresh;您需要在元素级别上工作。方法应该是您所需要的全部