【发布时间】:2012-02-27 16:38:38
【问题描述】:
我正在使用 CellTable 来显示存储在数据存储区中的实体信息。参数的数据类型为 String 和 int。
我决定使用 SelectionCell 来显示每个参数的值。当涉及到 String 数据类型时,这非常有效,但是对于 int 数据类型它会失败。
例如,我有一个参数叫做:
String name;
此参数的可能值为:“Name1”、“Name2”或“Name3”。我在 SelectionCell 中有这些值,所以如果一个实体有一个参数 name = "Name2",SelectionCell 会显示 "Name2"
List<String> names= new ArrayList<String>();
names.add("Name1");
names.add("Name2");
names.add("Name3");
SelectionCell nameCell = new SelectionCell(names);
Column<Entity, String> nameColumn = new Column<Entity, String>(nameCell){
@Override
public String getValue(Entity object){
return object.getName();
}
};
cellTable.addColumn(nameColumn, "Name");
现在,我有一个参数叫做:
int age;
此参数的可能值为:18、19、20、...、65。我在 SelectionCell 中有这些值,但如果实体有参数 age = 25,则 SelectionCell 不显示该值,而是显示 18。
List<String> ages= new ArrayList<String>();
for(int i = 18; i <= 65; i++){
ages.add("" + i);
}
SelectionCell ageCell = new SelectionCell(ages);
Column<Entity, String> ageColumn = new Column<Entity, String>(ageCell){
@Override
public String getValue(Entity object){
return "" + object.getAge();
}
};
cellTable.addColumn(ageColumn, "Age");
我该如何解决?
干杯。
【问题讨论】:
-
您是否尝试过在渲染之前将 int 转换为字符串?选择框更喜欢有字符串值。
-
是的,我正在转换为 String,因为 SelectionCell 只接受 List
值。我添加了代码。 -
您确定 object.getAge() 正在返回有效年龄之一吗?
-
@sosegon - 我拿走了你的代码并用 gwt 示例应用程序运行它,一切正常。我的猜测是 object.getAge() 出于某种原因返回 null
标签: google-app-engine gwt user-interface