2012-02-27 35 views
1

我正在使用CellTable來顯示存儲在數據存儲中的實體信息。參數的數據類型是String和int。在選擇單元中顯示當前值GWT

我決定使用SelectionCell來顯示每個參數的值。這對於String數據類型來說是完美的,但是對於int數據類型它失敗了。

舉例來說,我有一個名爲參數:

String name; 

此參數的值可能是: 「名1」, 「名稱2」 或 「NAME3」。我在SelectionCell這些值,所以如果實體有一個參數名稱=「名稱2」,SelectionCell顯示「名稱2」

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這些值,但是如果實體有一個參數年齡= 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");  

我該如何解決呢?

乾杯。

+2

你有沒有嘗試在呈現之前將int轉換爲字符串?選擇框喜歡有字符串值。 – 2012-02-27 17:30:54

+0

是的,我轉換爲字符串,因爲SelectionCell只接受列表值。我添加了代碼。 – sosegon12 2012-02-28 15:36:41

+0

你確定object.getAge()返回有效年齡之一嗎? – 2012-03-05 22:41:32

回答

0

嘗試在創建數據網格之前創建年齡列表。