Vaadin 在按钮上单击“刷新添加了新行的表”
我已经创建了一个表和一个按钮。单击该按钮后,我需要添加行。 为此,我使用了Vaadin 在按钮上单击“刷新添加了新行的表”,vaadin,Vaadin,我已经创建了一个表和一个按钮。单击该按钮后,我需要添加行。 为此,我使用了按钮单击方法在表中添加一行 问题是中的行被添加到表中(我可以在日志中看到), 但屏幕变为空白,只显示按钮 如果退出并再次导航到屏幕,则可以看到添加的新行 如何查看添加的新行?一旦添加,立即性 一些代码可能有助于进一步了解可能的错误,但我也建议您在添加表行后直接调用以下代码行 yourTable.setContainerDataSource(yourTable.getContainerDataSource()); 这将更新
按钮单击
方法在表中添加一行
问题是中的行被添加到表中(我可以在日志中看到),
但屏幕变为空白,只显示按钮
如果退出并再次导航到屏幕,则可以看到添加的新行
如何查看添加的新行?一旦添加,立即性 一些代码可能有助于进一步了解可能的错误,但我也建议您在添加表行后直接调用以下代码行
yourTable.setContainerDataSource(yourTable.getContainerDataSource());
这将更新表的数据源并强制重新绘制。若您提供了一些代码,则可以在单击按钮期间使用IndexedContainer在表中添加新行,从而提供更多帮助 范例
Create IndexedContainer
-----------------------
private IndexedContainer getTblTerminals(IndexedContainer container)
{
container.removeAllItems();
container.addContainerProperty("Terminal_Id", String.class, defaultValue);
g_TermialPojo=ws.readAll();
for(Terminal pojo:g_TermialPojo)
{
Object itemId=container.addItem();
strTid=String.valueOf(pojo.getTid());
container.getContainerProperty(itemId,"Terminal_Id").setValue(strTid.toString());
}
return container;
}
//To add indexedcontainer in your table
-------------------------------------------
Example
table.setContainerDataSource(getTblTerminals((IndexedContainer)table.getContainerDataSource()));
table.setImmediate(true);
如何添加行?到桌子上,到容器上?和以往一样,看到代码会帮助我们帮助你。谢谢Charles。。。问题解决了。。。在按钮上添加行后,只需将表添加到容器中单击…user1225344:请提供一些代码和您使用的解决方案。这将帮助其他人解决类似的问题。这应该不是必需的,因为表实现了Container.ItemSetChangeListener(和Container.PropertySetChangeListener),它侦听容器的更改并相应地更新自身。我相信OP的代码缺少一些关键的东西。没错,我不知道新数据添加到了容器中,我以为他/她只是将其添加到了一个备份模型中,当页面重新加载时,表数据源使用添加的项拾取了新集合。