gpt4 book ai didi

java - 动态创建 GWT CellTable

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:38 24 4
gpt4 key购买 nike

我遇到了 GWT CellTable 的问题。我需要动态创建 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;
}
};

现在,我需要向 celltable 添加一些数据。但是没有实体就没有如何填充不同列的示例。我试过自己:(考虑网格有 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和数据提供者;当然你必须调用updateRowDataList<List<String>> , 不是 List<String> .

您还需要一个 Column每列的实例,从 List<String> 中取出值按索引:

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);
}
}

关于java - 动态创建 GWT CellTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7172262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com