0

我有一个奇怪的问题。

我有一个带有重复控件的 XPage,其中数据源是一个视图。此视图按类别名称过滤。XPage 中有一个带有以下脚本的按钮:

doc = session.getCurrentDatabase().createDocument();            
doc.replaceItemValue("form", "myForm");
doc.replaceItemValue("docId", "myID");
doc.save();

该按钮在重复控件上进行部分刷新,但始终在第一次单击按钮时(打开 XPage 后)不会刷新重复器。第二次单击按钮后,我可以看到两个新文档。

当我从视图中删除文档时,我遇到了同样的问题,但在这种情况下,我收到以下错误消息:

javax.faces.el.PropertyNotFoundException: Error testing property 'label' in bean of type null
Error testing property 'label' in bean of type null

任何想法如何重新加载重复控件会更好(没有错误)?

4

1 回答 1

2

问题是您正在后端创建文档,因此运行时不知道创建了一个新文档,因此依赖于索引器将文档添加到视图中,然后再将其添加到刷新中,这通常在稍有延迟后发生,这就是为什么在下一次刷新后,您会看到两个文档。我过去解决它的方法是使用 setTimeout() 以大约 300-500 毫秒的延迟执行刷新,这肯定有点骇人听闻。

希望这可以帮助。

于 2012-05-09T16:10:11.863 回答