我有一个视图数据源,它使用视图键来访问文档并使用 var“posts”重复显示它们。在重复中,我有一个带有var“post”的文档数据源,它使用posts.getUniversalID()获取文档的unid。
再往下重复,我有另一个文档数据源“newcomment”,它是一个响应,并将父 ID 设为:post.getDocument().getUniversalID()
在 newcomment 数据源下方,我有一个编辑框和一个提交按钮,它使用 newcomment.save() 将评论保存为对“帖子”的响应
这是我的问题
两个人访问同一个 xpage。personA 进入页面并开始为帖子写评论。同时,personB 创建一个新帖子并在 personA 提交评论之前提交。现在发生的情况是,评论被绑定到最新的帖子,而不是 personA 回复的帖子。
我也尝试了另一件事,假设该数据库中有 10 个帖子。personA 和 personB 访问 xpages。personA 开始为 8 号帖子写评论。同时 personB 在数据库中创建了两个新帖子。当 personA 现在提交评论时,它似乎绑定到同一个索引,现在是两个帖子。但仍然是索引 8。这当然是错误的帖子。
如果我将重复更改为“createControlsAtPageCreation”,即repeatControls=true,评论将附加到正确的帖子,但随后我遇到了另一个问题,即视图未更新以显示最新帖子。
我的重复是使用 extlib 中的动态内容控件动态加载的自定义控件。
因为这里的信息是我发现的关于 repeatControls 设置的信息
- 将 repeatControls 属性设置为 true 会指示重复控件为数据集上的每次迭代创建其子项的新副本。
- 当使用属性 repeatControls=“true” 配置重复控件时,它只会在页面加载时重复其内容一次
所以我的问题是我不明白发生了什么。为什么我的评论附加到错误的父文档?有没有办法可以防止这种情况并且仍然可以正确显示新帖子
感谢您的帮助