动态创建GWT CellTable
问题内容:
我陷入GWT
CellTable的问题。我需要动态创建单元表,而我没有实体(Bean)类。我已经看到了所有celltable的示例,并且在没有实体类的情况下进行了大量搜索。
我需要根据数据库中存储的一些元数据动态填充表。我可以创建表结构
考虑有两个类,一个是GRID,另一个是COLUMN,用于元数据和列定义。GRID将具有COLUMNS的列表作为列定义
Class GRID {
List<COLUMN> columns;
}
Class COLUMN {
String columnName;
}
现在,我需要从数据库中获取网格并循环以填充单元格(列),如:
com.google.gwt.user.cellview.client.Column<String, String> textColumn = new Column<String, String>(
new EditTextCell()) {
@Override
public String getValue(String object) {
return object;
}
};
现在,我需要向单元格表中添加一些数据。但是没有实体,就没有如何填充不同列的示例。我已经尝试过自己的自我:( 考虑网格有3列)
List<String> data;
String a1 = "A1";
String a2 = "A2";
String a3 = "A3";
data = new ArrayList<String>();
data.add(a1);
data.add(a2);
data.add(a3);
final AsyncDataProvider<String> provider = new AsyncDataProvider<String>() {
@Override
protected void onRangeChanged(HasData<String> display) {
updateRowData(0, data);
}
};
provider.addDataDisplay(grid);
provider.updateRowCount(data.size(), true);
我能够产生如下输出:
A1 A1 A1
A2 A2 A2
A3 A3 A3
实际上输出应该只有一行
A1 A2 A3
但是没有这样做。
请帮忙。
谢谢,
问候,
问题答案:
你可以代表你的“行”的List<String>
情况下,你有你的参数从改变String
到List<String>
你Grid
,Column
和数据提供者;
当然你必须updateRowData
用a List<List<String>>
而不是a 来打电话List<String>
。
Column
每列还需要一个实例,将值从List<String>
by索引中取出:
class IndexedColumn extends Column<List<String>, String>
private final int index;
public IndexedColumn(int index) {
super(new EditTextCell();
this.index = index;
}
@Override
public String getValue(List<String> object) {
return object.get(this.index);
}
}