簡體   English   中英

將行號列添加到GWT CellTable

[英]Adding a row-number column to GWT CellTable

我需要在CellTable插入一個新的第一列,並在其中顯示當前行的RowNumber 在GWT中執行此操作的最佳方法是什么?

ListDataProvider包裝的列表中獲取元素的索引。 像這樣:

final CellTable<Row> table = new CellTable<Row>();
final ListDataProvider<Row> dataProvider = new ListDataProvider<Starter.Row>(getList());
dataProvider.addDataDisplay(table);

TextColumn<Row> numColumn = new TextColumn<Starter.Row>() {

    @Override
    public String getValue(Row object) {
        return Integer.toString(dataProvider.getList().indexOf(object) + 1);
    }
};

有關示例的其余部分,請參見此處

來自z00bs的解決方案是錯誤的,因為行數是從數據列表中的對象索引計算的。 例如,對於包含元素的字符串列表:[“Str1”,“Str2”,“Str2”],行號將為[1,2,2]。 這是錯誤的。

此解決方案使用celltable中的行索引作為行號。

public class RowNumberColumn extends Column {

    public RowNumberColumn() {
        super(new AbstractCell() {
            @Override
            public void render(Context context, Object o, SafeHtmlBuilder safeHtmlBuilder) {
                safeHtmlBuilder.append(context.getIndex() + 1);
            }
        });
    }

    @Override
    public String getValue(Object s) {
        return null;
    }
}

cellTable.addColumn(new RowNumberColumn());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM