有没有办法在展开的区域中显示小部件? RowExpander使用AbstractCell,它只能显示简单的html。可以从小部件中获取html并将其放入单元格中,但小部件中的按钮在此之后将无效。
答案 0 :(得分:1)
扩展RowExpander类和/或覆盖beforeExpand之前的方法。这就是我所做的,它非常适合插入按钮,或者在我的情况下我需要一个网格:
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;
}
答案 1 :(得分:0)
而不是将小部件插入网格。您可以将小部件放在网格上。
在AbsolutPanel中插入网格。在展开事件之后,您可以将小部件插入到AbslolutPanel中并在展开区域上设置位置。
设置AbsolutPanel的高度,例如网格的总高度(所有网格线)。并且AbsolutPanel放入滚动面板。
使用此解决方案,您有一个小部件 - 不仅仅是纯HTML。而且您不必担心滚动。
答案 2 :(得分:0)