我在前一段时间添加了这个问题xpages passing the UNID to other field ......目前它似乎有效。
在我创建<xe:dialog>
结构(使用单个数据源:Pdoc
)之后,我观察到我无法获得其他数据源的正确UNID
:{{1} }。此对话框显示的是具有数据源Cdoc
在主Xpage(具有数据源:Cdoc.
)上有一个计算字段:( Cdoc
位于具有公式@text(@uniquedocumentid)的表单上
txt_UNID
和一个显示对话框的按钮:
<xp:text escape="true" id="computedField3" value="#{Cdoc.txt_UNID}"></xp:text>
对话框的<xp:button value="Adding a Pdoc structure inside my dialog" id="button3"
styleClass="lotusFormButton" refreshMode="partial" rendered="#{javascript:currentDocument.isEditable()}">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="computedField3">
<xp:this.action><![CDATA[#{javascript: if ( Cdoc.isNewNote() ) { Cdoc.save();
Cdoc.setValue("computedField3",Cdoc.getDocument().getUniversalID());
getComponent('exampleDialog').show() }
else
{
Cdoc.setValue("computedField3",Cdoc.getDocument().getUniversalID());
getComponent('exampleDialog').show()}
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
设置为refreshOnShow
。在对话框中,有一个字段(绑定到true
源),我想在其中显示存储在我的主XPage的先前计算字段中的Pdoc
的UNID:
Cdoc
我认为问题出在这里......我确实尝试添加 <xp:inputText value="#{Pdoc.txt_CompanieUNID}"
id="inputText1" defaultValue="#{Cdoc.txt_UNID}">
</xp:inputText>
作为上面#{Cdoc.txt_UNID}
的默认值,而不是getComponent("computedField3").getValue()
,但是我得到了一个错误,考虑到事实上,我想,inputText
不在对话框内?
我做错了什么?
顺便说一句,该对话框包含许多字段(绑定到Pdoc),具有默认值:
computedField3
它运作正常。我不知道为什么在Cdoc.<field_name>
的情况下它不起作用。
谢谢你的时间!
答案 0 :(得分:0)
您正在混合字段名称和组件名称。在显示对话框的按钮中执行此操作,以使用期望值更新字段txt_UNID:
Cdoc.setValue("txt_UNID", Cdoc.getDocument().getUniversalID());