1

我有一个需要不同类型子行的 CellTable;类似于http://showcase2.jlabanca-testing.appspot.com/#!CwCustomDataGrid

我不想使用 DataGrid,因为我理解它具有固定高度,并且我的表格在动态高度下看起来更好。

我试图扩展 CellTable 然后写

    public void renderRowValues(SafeHtmlBuilder sb,
            java.util.List<ShipmentLeg> values,
            int start,
            SelectionModel<? super ShipmentLeg> selectionModel){
        super.renderRowValues(sb, values, start, selectionModel);

        GWT.log("HELLO");
    }

实现这一目标的好策略是什么?注意:在此代码中,GWT.log 永远不会被调用,因为在 super 中会抛出弃用错误

干杯

4

1 回答 1

5

CellTable和之间的APIDataGrid是一样的。从 GWT 2.5 开始,该renderRowValues()方法已被弃用,因此,为了更改两个表的默认表结构(例如,创建子行),您需要提供一个CellTableBuilder.

两种表实现都使用 a (利用大多数位并仅公开一个方法DefaultCellTableBuilder的扩展)。这就是您正在寻找的东西,无论您使用的是还是.AbstractCellTableBuilderbuildRowImpl()CellTableDataGrid

扩展AbstractCellTableBuilder并给出 的实现buildRowImpl(),就像您链接的示例一样。请注意,您链接了一个旧样本。您应该始终参考当前展示中的那个,因为 API 略有不同。

旁注:DataGrid根本没有“固定高度”,但需要一个ProvidesResize容器,因为它需要在布局更改时动态调整其大小(例如,在浏览器调整大小时)。看看这个,如果你还没有。

于 2013-05-27T17:39:36.460 回答