我有一个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");
}
Run Code Online (Sandbox Code Playgroud)
有什么好的策略可以做到这一点?注意:在此代码中,永远不会调用GWT.log,因为在超级代码中会引发弃用错误
干杯
CellTable和之间的API DataGrid相同。从GWT 2.5开始,该renderRowValues()方法已弃用,为了更改两个表的默认表结构(例如,创建子行),您需要提供一个CellTableBuilder。
两种表的实现都使用DefaultCellTableBuilder(扩展AbstractCellTableBuilder该表以利用大多数位并仅公开一个buildRowImpl()方法)。无论您使用CellTable还是,这都是您要寻找的东西DataGrid。
扩展AbstractCellTableBuilder并提供的实现buildRowImpl(),就像您链接的示例一样。请注意,您链接了一个旧样本。你应该总是指一个在目前的展示,作为API略有不同。
旁注:DataGrid根本没有“固定高度”,但是需要一个ProvidesResize容器,因为它需要在布局更改时动态调整其大小(例如,在浏览器调整大小时)。检查该出,如果您还没有。