我有一个需要不同类型的子行的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,因为在超级中抛出了一个弃用错误
干杯
答案 0 :(得分:4)
CellTable
和DataGrid
之间的API相同。从GWT 2.5开始,不推荐使用renderRowValues()
方法,为了更改两个表的默认表结构(比如创建子行),需要提供CellTableBuilder
。
两个表实现都使用DefaultCellTableBuilder
(AbstractCellTableBuilder
的扩展,它利用大部分位并仅公开buildRowImpl()
方法)。无论您使用的是CellTable
还是DataGrid
,这都是您要找的。 p>
扩展AbstractCellTableBuilder
并提供buildRowImpl()
的实现,就像您链接的示例一样。请注意您链接了旧样本。您应该始终参考当前展示中的the one,因为API略有不同。
旁注:DataGrid
根本没有“固定高度”,但需要一个ProvidesResize
容器,因为它需要在布局时动态调整其大小更改(例如,在浏览器调整大小时)。如果您还没有,请检查this。