Lotus notes 重复控件刷新错误

Lotus notes 重复控件刷新错误,lotus-notes,xpages,Lotus Notes,Xpages,我有一个奇怪的问题 我有一个带有repeat控件的XPage,其中数据源是一个视图。 此视图具有按类别名称筛选的筛选器。 XPage中有一个按钮,带有以下脚本: doc = session.getCurrentDatabase().createDocument(); doc.replaceItemValue("form", "myForm"); doc.replaceItemValue("docId", "myID"); doc.save(); 该按钮对repeat控件

我有一个奇怪的问题

我有一个带有repeat控件的XPage,其中数据源是一个视图。 此视图具有按类别名称筛选的筛选器。 XPage中有一个按钮,带有以下脚本:

doc = session.getCurrentDatabase().createDocument();            
doc.replaceItemValue("form", "myForm");
doc.replaceItemValue("docId", "myID");
doc.save();
该按钮对repeat控件进行部分刷新,但总是在第一次单击该按钮(打开XPage后)时不会刷新中继器。在第二次点击按钮后,我可以看到两个新文档

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

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

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

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


希望这有帮助。

嗨,谢谢你的回答。你有没有一个小例子告诉我is是如何使用setTimeout的?我在按钮的客户端事件中使用它,但它不起作用
setTimeout(function(){XSP.partialRefreshGet({id:myElement},{})},1000)