2013-05-26 41 views
1

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

我不想使用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不会被调用作为一个超级弃用引发错误

干杯

回答

4

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

这两个表实现都使用DefaultCellTableBuilderAbstractCellTableBuilder的扩展名,这些扩展名利用大多数位并仅公开buildRowImpl()方法)。无论您使用的是CellTable还是DataGrid,这都是您要查找的内容。

扩展AbstractCellTableBuilder并给出buildRowImpl()的实现,非常类似于您链接的示例。请注意你链接了一个旧样本。您应该始终参考当前展示中的the one,因为API稍有不同。

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