Java 如何在GWT的表尾动态添加Celltable行
目前,我正在使用以下方法将一堆行添加到我的CellTable中Java 如何在GWT的表尾动态添加Celltable行,java,gwt,Java,Gwt,目前,我正在使用以下方法将一堆行添加到我的CellTable中 public void createTable(){ CellTable table = new CellTable(0,tableResource); MyDataProvider dataprovider = new MyDataProvider(table); setDataToList(myDataList); } public MyDataProvider extends ListDataProvider<
public void createTable(){
CellTable table = new CellTable(0,tableResource);
MyDataProvider dataprovider = new MyDataProvider(table);
setDataToList(myDataList);
}
public MyDataProvider extends ListDataProvider<MyModel>{
List<MyModel> dataList = new ArrayList<MyModel>();
public MyDataProvider(CellTable table){
this.addDataDisplay(table);
this.setList(dataList);
}
public void setDataToList(List<MyModel> models){
for(MyModel model: models){
dataList.add(model);
refresh();
}
}
}
我在表中没有看到任何数据。整张桌子还是空的 您应该能够将元素添加到ListDataProvider返回的列表中。然后,在数据提供程序上调用refresh以将更改推送到UI 您还需要将该表添加到数据提供者:
dataProvider.addDataDisplay(table);
您可以使用此代码
MyDataProvider.getList().add(new MyModel());
我认为更新celltable的数据提供程序,然后调用refresh就可以了
//add table to data provider do only the 1st time
dataProvider.addDataDisplay(cellTable);
//add new item to the list
dataProvider.getList().add(text);
//flush and refresh dataprovider for it to be updated
dataProvider.flush();
dataProvider.refresh();
//set celltable to new rowdata and row counts
cellTable.setRowData(0, dataProvider.getList());
cellTable.setRowCount(dataProvider.getList().size(), true);
//redraw the table with new data
celltable.redraw();
避免两行回答。试着为解决方案提供一个解释。这不是增加了很多要求吗。如果每次添加项时都要重新绘制表,那么我会添加所有项并重新绘制表。如果要更新多行,可以使用redrawRowint absRowIndex。。。但对于添加更多数据,您需要调用redraw,遗憾的是目前没有其他选择…非常感谢,但您的解决方案对我来说似乎太慢了。绝对。如果有更好的消息,我会及时通知你。