Java 将小部件放入GXT中的RowExpander中

Java 将小部件放入GXT中的RowExpander中,java,gwt,gxt,Java,Gwt,Gxt,有没有办法在扩展区域中显示小部件?RowExpander使用AbstractCell,它只能显示简单的html。可以从小部件获取html并将其放入单元格中,但在此之后小部件中的按钮将不起作用。而不是将小部件插入网格。您可以将小部件放到网格上 在面板中插入网格。在展开事件之后,您可以将小部件插入absloutpanel并在展开区域上设置位置 设置AbsolutPanel的高度,例如栅格的总高度(所有栅格线)。并将面板放置在滚动面板内 有了这个解决方案,您就有了一个小部件——不仅仅是纯html。您不

有没有办法在扩展区域中显示小部件?RowExpander使用AbstractCell,它只能显示简单的html。可以从小部件获取html并将其放入单元格中,但在此之后小部件中的按钮将不起作用。

而不是将小部件插入网格。您可以将小部件放到网格上

在面板中插入网格。在展开事件之后,您可以将小部件插入absloutpanel并在展开区域上设置位置

设置AbsolutPanel的高度,例如栅格的总高度(所有栅格线)。并将面板放置在滚动面板内


有了这个解决方案,您就有了一个小部件——不仅仅是纯html。您不必担心滚动。

尝试此解决方法,使事件在行扩展器中重新工作。

扩展RowExpander类和/或在展开前重写该方法。以下是我所做的,它非常适合插入按钮,或者在我的情况下,我需要一个网格:

public class RowWidgetExpander extends RowExpander {

private Widget widget;

public void setWidget(Widget widget) {
    this.widget = widget;
}

public Widget getWidget() {
    return widget;
}

@Override
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);

    if(fireEvent(Events.BeforeExpand, e)) {
        body.setInnerText("");
        body.appendChild(widget.getElement());
        ComponentHelper.doAttach(widget);

        return true;
    }

    return false;
}

请引用您的链接中回答问题的相关部分。原因是这样做的目的是为了回答远远超越当下的问题,而且是在将来人们搜索他们问题的答案时。如果在将来的某个时候,这个链接中断了,那么你的答案对其他人来说将是无用的