在编辑主网格行时,rowBody刷新松散内部网格。 extjs 3 ..我可以重新渲染内部网格..?

时间:2014-09-24 08:03:36

标签: gridview grid extjs3

我正在使用enablerowbody:true,在rowBody中插入div,使用getRowClass,并在此div中渲染网格。最初加载精细(网格内网格),

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

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

2 个答案:

答案 0 :(得分:0)

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

然后,在refresh事件中,您必须将内部网格移回外部网格rowBody。

你不应该只是重建内部网格而不进行适当的破坏以避免内存泄漏。

答案 1 :(得分:0)

正如saki建议的那样,将innerGrid创建为

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

然后在gridView的rowupdated侦听器上重新渲染innerGrid。

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; } }

注意:仅当内部网格不可编辑时才保持为True ..

仍在尝试使用可编辑的innerGrid(附加/触发事件正在抛出错误)