我使用此问题作为指南制作了动态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;
}
只用一列设置数据的方法。
@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方法。
为什么我收到一个可编辑的小册表?
答案 0 :(得分:3)
您的表格是可编辑的,因为IndexedColumn在另一个问题中使用EditTextCell。使用TextCell,您的表格将无法编辑。