2013-05-26 77 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