0

この質問をガイドとして使用して、動的な CellTable を作成しました: Create GWT CellTable Dynamically

しかし、そのように編集可能な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;
}

1列のみのデータ設定方法。

@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 に答える