我有一个xpage,有多个标签。第一个选项卡包含一个面板,仅当isNewNote()为true时,其内容才可编辑。所以我计算了面板的readonly属性。
但每次我保存文档时,都会创建一个新的冲突文档。
同时,如果我取消选中只读属性,它会正确保存而不会发生任何冲突。
有人可以帮我解决这个问题吗?
代码 - Xpage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="document1"
formName="frmOnboardingRequest">
</xp:dominoDocument>
</xp:this.data>
<xp:panel>
<xp:this.readonly><![CDATA[#{javascript:if(document1.isNewNote()){
return false;
}else{
return true;
}}]]></xp:this.readonly>
<xp:table>
<xp:tr>
<xp:td>
<xp:label value="O n_ e d_ form completed by:"
id="oN_ED_FormCompletedBy_Label1" for="oN_ED_FormCompletedBy1">
</xp:label>
</xp:td>
<xp:td>
<xp:inputText
value="#{document1.ON_ED_EmployeeName}"
id="oN_ED_FormCompletedBy1">
</xp:inputText>
</xp:td>
</xp:tr>
</xp:table></xp:panel>
<xp:button value="Submit" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button></xp:view>
答案 0 :(得分:4)
检查指向同一文档的多个数据源。
之前的一些帖子有同样的问题 xpage creates save conflict on save/submit
Multiple data sources in XPages
Lotus Notes: Replication conflict caused by agent and user running on the document at same time
=============================================== ==
我必须将按钮代码更改为此以获得相同的问题
<xp:button value="Submit" id="button1"><xp:eventHandler event="onclick" refreshMode="complete" submit="true">
<xp:this.action>
<xp:saveDocument></xp:saveDocument>
</xp:this.action></xp:eventHandler></xp:button>
经过多次测试后,试试这个。
将此字段添加到xpage的末尾
<xp:inputText id="inputText1"
value="#{document1.temp}"
style="visibility:hidden;display:none">
</xp:inputText>
然后不会产生任何冲突。
答案 1 :(得分:0)
<xp:panel>
<xp:this.data>
<xp:dominoDocument var="document1" action="openDocument"></xp:dominoDocument>
</xp:this.data>
</xp:panel>
当然,您必须计算文档模式和docid,而不是使用readonly属性。
答案 2 :(得分:0)
除了其他建议之外,在使用选项卡表时,您还需要仔细阅读此博文。我在之前的项目中遇到过类似的问题,Tommy Valand的redirectToCurrentDocument()修复了它们。
http://dontpanic82.blogspot.com/2010/06/xpages-avoid-saving-duplicate-documents.html