【问题标题】:Displaying current value in Selection Cell GWT在选择单元格 GWT 中显示当前值
【发布时间】: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


【解决方案1】:

在创建 dataGrid 之前尝试创建您的年龄列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多