2011-06-03 26 views
0

如何在按鈕按下時更改嵌入在celltable列中的ButtonCell文本。 我只看到setFieldUpdater。 也有一些簡單的方法來更新另一個CellTable列,而不是直接訪問它GWT ButtonCell更改文本

回答

1

單元窗口小部件是「基於模型」(MVP),您必須更新該行中呈現的對象(傳遞給FieldUpdater ),然後告訴CellTable該值已更改,並且應該重繪(使用setRowData,使用傳遞給FieldUpdater的索引)。 類似於:

new FieldUpdater<MyObject, String>() { 
    @Override 
    public void update(int index, MyObject object, String value) { 
    object.setSomeField("foo"); 
    cellTable.setRowData(index, Collections.singletonList(object)); 
    } 
} 
+0

謝謝。最初我cretaed cellTable.redraw();但是更新整個表格。 Collections.singletonList(object)是什麼? 要將多個對象傳遞給單元格? – Andreja 2011-06-03 14:13:51

+0

'setRowData'需要一個'List',但你只有一個對象; 'java.util.Collections.singletonList'在你的單個對象周圍建立一個'List';它比創建一個新的,比如'ArrayList'來添加對象更容易。順便說一句,'setRowData' *更新*索引開始的項目(行);傳遞一個單例列表只會更新'index'行;傳遞一個包含兩個項目的列表將同時更新'index'和'index + 1'行。 – 2011-06-03 14:40:55

+0

您好Thomas,在自定義單元格上記錄渲染方法似乎表使用FieldUpdater更新單個對象時表呈現兩次。任何想法? http://pastebin.com/xxeqXSXw – 2011-11-30 20:10:04