xpages显示一个新文档。在对话框中
我有一个问题,最近它让我有些头痛 在我的XPage中有一个视图显示一些文档(比如说xpages显示一个新文档。在对话框中,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我有一个问题,最近它让我有些头痛 在我的XPage中有一个视图显示一些文档(比如说Pdoc作为数据源),我在中打开/创建它们。此对话框只有Pdoc声明为datasource,并且它从Xpage datasrouce继承了一些值。我的可点击列公式是: // some var declarations var formName = rowData.getDocument().getItemValueString("Form"); if ( formName == "fmP" ) { viewSc
Pdoc
作为数据源),我在
中打开/创建它们。此对话框只有Pdoc
声明为datasource,并且它从Xpage datasrouce继承了一些值。我的可点击列公式是:
// some var declarations
var formName = rowData.getDocument().getItemValueString("Form");
if ( formName == "fmP" )
{ viewScope.put("dlgDocUnid", pe.getUniversalID())
getComponent("exampleDialog").show(); }
在相同的XPage上,我可以通过按钮newpdoc
使用相同的对话框创建一个新的Pdoc
问题是:当我打开一个现有的Pdoc
,然后保存或关闭它,在我使用按钮创建一个新便笺=>之后,旧的/以前的(已经保存的Pdoc
)就会显示出来
如果首先我刚刚创建了一个新的notePdoc
,它可以工作,并且显示了一个新的空的Pdoc。
我的对话框数据代码:
<xp:this.data>
<xp:dominoDocument var="Pdoc" formName="fmPersContact"
ignoreRequestParams="true" scope="request" action="editDocument">
<xp:this.documentId><![CDATA[#{javascript:viewScope.get("dlgDocUnid");}]]></xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>
我使用.documentId
作为viewPanel中的open方法。我想这就是问题所在。我想,(我不确定),我应该以这样的方式计算这个documentId,当我创建一个新便笺时,这个documentId不应该再是viewScope.get(“dlgDocUnid”)
。
谢谢您的时间。如果我理解正确,您已经在XPage中定义了两个数据源,并尝试在对话框中使用它们,对吗?相反,我建议在
xe:dialog
内的面板中定义单个数据源
我在博客上写过一个类似的例子。在本例中,使用了工具提示对话框,但其逻辑相同,您可以将xe:tooltipDialog
替换为xe:dialog
这里的想法是使用名为noteId
的viewScope
变量。要打开现有文档,请将此变量设置为现有文档的注释id。要创建新文档,该值将设置为new
。然后根据此变量在对话框中定义数据源:
<xe:dialog>
<xp:panel style="width:500.0px">
<xp:this.data>
<xp:dominoDocument
var="document1"
formName="Parameter"
action="#{viewScope.noteId eq 'NEW'?'createDocument':'editDocument'}"
documentId="#{viewScope.noteId eq 'NEW'?'':viewScope.noteId}"
ignoreRequestParams="true">
</xp:dominoDocument>
</xp:this.data>
..... Dialog content ....
</xp:panel>
</xe:dialog>
..... 对话框内容。。。。
当您将数据源放在对话框中时,您不会在启动对话框之前刷新页面以加载或准备数据源,我想这是您当前的问题。可能是因为您忘记停用忽略请求参数的标志。
听起来对话框总是与当前文档关联,而不是与docid中的参数关联。谢谢您的回答。有相当大的机会不理解您(这是我的错/在Xpages方面经验不足):我的Xpages只有一个在data(Cdoc)中声明的数据源,对话框确实在我的xpage上,它有Pdoc。正如数据源声明的那样)。我将尝试更改操作和documentId参数,并让您知道。从数据源粘贴更多代码。可能我理解错了。我的xpage代码是:我的对话框代码:当您打开一个新对话框时,是否清除
viewScope.dlgDocUnid
?