GET - 当基础列表更改时,CellList不会更新

时间:2012-05-23 15:29:41

标签: java gwt uibinder celllist

我想要在其他时间显示2个ArrayLists。我有一个按钮,当点击时应该换掉第二个列表的第一个列表。

我尝试了两种方法但收效甚微。

第一种方法是创建一个ListDataProvider并将其绑定到列表和表,但是当单击该按钮并且列表结构发生了更改时,没有发生任何事情./

我的第二种方法是坚持使用普通的CellList并简单地重置行数和行数据。如果我单击两次按钮,这种方法就有效。

我可以俯瞰什么?任何帮助将不胜感激!

代码如下:

这是我尝试将ArrayList重新添加到CellList

的时候
public void refreshTable()
{
    systemTable.setRowCount(SYSTEMS.size(), true);
    systemTable.setRowData(0, SYSTEMS);
}

我用ListDataProvider尝试了它,如下所示:

 private ListDataProvider<String> listDataProvider = new ListDataProvider<String>(SYSTEMS);

public void refreshTable()
{
    listDataProvider.refresh();
}

1 个答案:

答案 0 :(得分:1)

您可能正在遇到此issue

两个版本都应该有效。 对于第一个解决方案,尝试撤消呼叫(先呼叫setRowData()然后再呼叫setRowCount()):

public void refreshTable()
{
    systemTable.setRowData(0, SYSTEMS);
    systemTable.setRowCount(SYSTEMS.size(), true);
}

对于第二种解决方案我认为您忘记致电addDataDisplay。 以下是一些更改基础数据的方法:

1。)创建一个新的ListDataProvider并设置DataDisplay(您不需要调用刷新):

private ListDataProvider<String> listDataProvider = new ListDataProvider<String>(SYSTEMS);
listDataProvider.addDataDisplay(systemTable);

2.)设置现有ListDataProvider的新列表:

   listDataProvider.setList(SYSTEMS);

3.)修改现有列表:

   listDataProvider.getList().add/remove etc