0

我使用这个问题作为指南制作了一个动态 CellTable:动态创建 GWT CellTable

但是这样我只能制作一个可编辑的CellTable,我不知道为什么。

检查我的代码:

@UiField
CellTable<List<String>> tableDynamic;
@UiField
SimplePager pagerDynamic;

private SingleSelectionModel<List<String>> 
selectionModelDynamic = new SingleSelectionModel<List<String>>();
private List<String> columns = new ArrayList<String>();
private List<List<String>> data = new ArrayList<List<String>>();
private ListDataProvider<List<String>> providerDynamic 
= new ListDataProvider<List<String>>();

我的工厂

@UiFactory
public CellTable<List<String>> getTabelaDynamic() {
    CellTable<List<String>> table
            = new com.google.gwt.user.cellview.client.CellTable<List<String>>();

    //List<String> columnsArray = colunas;
    List<String> columnsArray = columns();
    for (int column = 0; column < columnsArray.size(); column++) {
        table.addColumn(new IndexedColumn(column), new
                TextHeader(columnsArray.get(column)));
    }
    table.setKeyboardSelectionPolicy
 (HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.ENABLED);
    table.setSelectionModel(selectionModelDynamic);
    providerDynamic.addDataDisplay(table);
    providerDynamic.setList(new ArrayList<List<String>>());
    return table;
}

获取列的方法:

//Just a static test 
public List<String> columns(){
    colunas.add("Tables");
    return colunas;
}

仅用一列设置数据的方法。

@Override
public void setSingleData(List<String> bankData) {
    for (String s : bankData) {
         List<String> help = new ArrayList<String>();
         help.add(s);
         dados.add(help);
    }
    providerDynamic.setList(data);
}

我执行 rpc 调用(onBind 方法)来获取列表并填充 setsingledata 方法。

为什么我收到一个可编辑的单元格表?

4

1 回答 1

3

您的表格是可编辑的,因为 IndexedColumn 在另一个问题中使用 EditTextCell。使用 TextCell,您的表格将不可编辑。

于 2012-09-28T02:20:38.467 回答