我有一个dominoview的重复控件作为数据源,显示主要文档。
对于重复中的每个条目,用户可以发表评论,这些评论是参考doc /条目保存的。当用户保存评论时,我使用doc的universalID作为参考。我从底层dominoview的列值获得此unID。
我们正在努力应对基础视图的变化(创建新文档,从其他用户中删除)。当然,xpage仍然显示页面加载的情况,但是当您在重复(添加注释)中执行时,rowindex引用后端视图,而不是xpage中显示的数据。
也许一个例子有助于说清楚:
用户A打开xpage,读取它(...?),然后决定对entry / doc No 3发表评论。同时用户B创建了另一个主文档(这样在后端视图中,用户A的条目已移至第4行。现在,当用户A保存其评论时,它将被引用到前第2行文档。
有没有办法阻止这种查找?
thx任何帮助,Uwe
答案 0 :(得分:0)
请勿使用索引。
使用基础重复行文档。
重复定义变量,例如var="row"
并使用row.getDocument()
获取文档
这样您就可以确保更改了正确的文档。
<xp:repeat
id="repeat1"
rows="30"
value="#{view1}"
var="row">
...
<xp:button
value="change document"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:
var doc = row.getDocument();
doc.replaceItemValue("comment", "my comment");
doc.save();
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:repeat>