Grid 如何使网格和单元格在GXT 3中充当容器?

Grid 如何使网格和单元格在GXT 3中充当容器?,grid,cell,gxt,custom-cell,Grid,Cell,Gxt,Custom Cell,如何让网格和单元格在GXT 3中充当容器,以便它们可以容纳从其他容器到任何小部件的任何对象。 我正在开发一个小应用程序,它有行扩展网格。GXT演示有一个很好的例子。 从类层次结构可以清楚地看出,网格单元是单元接口,它允许使用render()方法,因此我可以添加任何可以在其中显示的html代码。 但是我想创建一个cell小部件,它可以有add()方法,允许向任何其他小部件添加其他小部件,例如ContentPanel 有什么建议吗?这是我写的代码。这不是一个完美的方案,但很管用 public cla

如何让网格和单元格在GXT 3中充当容器,以便它们可以容纳从其他容器到任何小部件的任何对象。

我正在开发一个小应用程序,它有行扩展网格。GXT演示有一个很好的例子。

从类层次结构可以清楚地看出,网格单元是单元接口,它允许使用
render()
方法,因此我可以添加任何可以在其中显示的html代码。

但是我想创建一个cell小部件,它可以有
add()
方法,允许向任何其他小部件添加其他小部件,例如ContentPanel


有什么建议吗?

这是我写的代码。这不是一个完美的方案,但很管用

public class MyRowExpander extends
    RowExpander<GridModel> {

public MyRowExpander (
        IdentityValueProvider<GridModel> valueProvider,
        AbstractCell<GridModel> contentCell) {
    super(valueProvider, contentCell);


}
@Override
protected boolean beforeExpand(GridModel model, Element body,
        XElement row, int rowIndex) {
    super.beforeExpand(model, body, row, rowIndex);
    BeforeExpandItemEvent<GridModel> e = new BeforeExpandItemEvent<GridModel>(
            model);
    if (!e.isCancelled()) {
        if (body.hasChildNodes())
            body.removeChild(body.getChild(0));
        body.setInnerText("");
        Widget customWidget = getWidget(model);
        body.appendChild(customWidget.getElement());
        ComponentHelper.doAttach(customWidget);
        return true;
    }
    return false;
}
公共类MyRowExpander扩展
扩展器{
公共扩展器(
IdentityValueProvider valueProvider,
抽象单元内容单元){
超级(valueProvider、contentCell);
}
@凌驾
展开前受保护的布尔值(网格模型、元素体、,
XElement行,int行索引){
super.beforeExpand(模型、主体、行、行索引);
BeforeExpandItemEvent e=新建BeforeExpandItemEvent(
模型);
如果(!e.isCancelled()){
if(body.hasChildNodes())
body.removeChild(body.getChild(0));
body.setInnerText(“”);
Widget customWidget=getWidget(模型);
appendChild(customWidget.getElement());
ComponentHelper.doAttach(customWidget);
返回true;
}
返回false;
}