在GWT CellTable上添加一个子行

时间:2013-05-26 16:09:03

标签: gwt celltable

我有一个需要不同类型的子行的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,因为在超级中抛出了一个弃用错误

干杯

1 个答案:

答案 0 :(得分:4)

CellTableDataGrid之间的API相同。从GWT 2.5开始,不推荐使用renderRowValues()方法,为了更改两个表的默认表结构(比如创建子行),需要提供CellTableBuilder

两个表实现都使用DefaultCellTableBuilderAbstractCellTableBuilder的扩展,它利用大部分位并仅公开buildRowImpl()方法)。无论您使用的是CellTable还是DataGrid,这都是您要找的。

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

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