如何向CellTable添加行?

时间:2010-11-17 13:08:22

标签: java gwt

我在我的应用程序中使用带有“网格”编辑功能的CellTable。编辑现有行工作正常。但是我现在正在努力支持以非hacky方式在表格的底部添加新行。这样做的最佳方式是什么?

我的(hacky)解决方案:

响应RangeChangeEvent加载数据的代码保留了对表上最后一页设置的引用。要添加新行,我将一个对象添加到此列表的末尾,并使用展开的列表执行table.setRowData。我必须通过从列表中删除元素来确保我保持在表的页面大小内。在数据集的最后一页上有很多问题。

我原以为这是一个常见的用例。

也许我需要创建自己的行和页面数据的中间集合+只在真正需要时从服务器获取新行?这仍然存在更改网格页面大小以添加新行的问题。

2 个答案:

答案 0 :(得分:3)

这就是我实现这一目标的方式。

CellTable<Style> table = new CellTable<Style>();
List<Style> t = new ArrayList<Style>();
//add some data to List "t" and populate the table. 
table.setRowCount(t.size(), true);
table.setRowData(0, t);
//everytime you want to add row, first add data to List "t" and populate the table again.

答案 1 :(得分:0)

我不熟悉GWT,但这可能是AbstractHasData.setRowData()

http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/user/cellview/client/AbstractHasData.html#setRowData%28int,%20java.util.List%29

(AbstractHasData类扩展了AbstractHasData)。