有没有办法在扩展区域中显示小部件?RowExpander 使用 AbstractCell 只能显示简单的 html。可以从小部件中获取 html 并将其放入单元格中,但在此之后小部件中的按钮将不起作用。
问问题
987 次
3 回答
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;
}
于 2013-10-09T22:26:10.793 回答
0
而不是将小部件插入网格。您可以将小部件放在网格上。
在 AbsolutPanel 中插入网格。在展开事件之后,您可以将小部件插入 AbslolutPanel 并在展开区域上设置位置。
设置 AbsolutPanel 的高度,例如网格的总高度(所有网格线)。AbsolutPanel 放在一个滚动面板中。
有了这个解决方案,你就有了一个小部件——不仅仅是纯 html。而且您不必担心滚动。
于 2013-09-05T21:05:10.173 回答
0
尝试此解决方法以使事件在行扩展器中再次起作用。 http://www.sencha.com/forum/showthread.php?250316-RowExpander-dosn-t-fire-events-on-ContentCell
于 2013-10-04T19:36:40.063 回答