Hello everybody,
I've used the ExtendedRowExpander class I found on the forum so as to make cascading grids.
I have only put only grid (sub-grid) under the main one, I have no problems, it works well.
But if I put another grid (sub-sub-grid) under the one (sub-grid) under the main one, I have some problems.
There is a "$(body)" that is not supposed to be here. I have to click on the expander to make it disappear and the sub-sub-grid appear.
I have attached an image to this message that shows my problem.
And here is the ExtendedRowExpander class code.
Do you have an idea of how I could make the "$(body)" disappear?
Thanks for your help,
Romain
public class ExtendedRowExpander extends RowExpander
{
private Widget contentWidget;
private LayoutContainer contentContainer;
public ExtendedRowExpander()
{
}
protected boolean beforeExpand(ModelData model, Element body, El row, int rowIndex)
{
RowExpanderEvent e = new RowExpanderEvent(this);
e.setModel(model);
e.setRowIndex(rowIndex);
e.setBodyElement(body);
e.setRowExpander(this);
if (fireEvent(Events.BeforeExpand, e))
{
if (contentWidget != null)
{
body.setInnerHTML(getBodyContent(model, rowIndex));
// body.setInnerHTML("");
contentContainer = new LayoutContainer();
contentContainer.add(contentWidget, new RowData(1, -1));
contentContainer.render(body);
contentContainer.layout(true);
if (!contentContainer.isAttached())
{
ComponentHelper.doAttach(contentContainer);
}
this.grid.addListener(Events.Detach, new Listener<BaseEvent>()
{
public void handleEvent(BaseEvent be)
{
if (contentContainer.isAttached())
{
ComponentHelper.doDetach(contentContainer);
}
}
});
}
return true;
}
return false;
}
public Widget getContentWidget()
{
return contentWidget;
}
public void setContentWidget(Widget contentWidget)
{
this.contentWidget = contentWidget;
}
}