xpages显示一个新文档。在对话框中

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

我有一个问题,最近它让我有些头痛

在我的XPage中有一个视图显示一些文档(比如说
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
)就会显示出来

如果首先我刚刚创建了一个新的note
Pdoc
,它可以工作,并且显示了一个新的空的
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