xpages显示一个新的doc。在对话框内

时间:2014-08-07 06:18:16

标签: xpages xpages-ssjs

我有一个问题,它最近给我带来了一些麻烦。

在我的XPage中有一个显示一些文档的视图(假设Pdoc为数据源),我在<xe:dialog>内打开/创建它们。此对话框仅将Pdoc声明为数据源,并从Xpage datasrouce继承了一些值。我的可点击列公式为:

// some var declarations
var formName = rowData.getDocument().getItemValueString("Form");

if ( formName == "fmP" )

{ viewScope.put("dlgDocUnid", pe.getUniversalID())
getComponent("exampleDialog").show(); }

在同一个XPage上,我可以通过按钮Pdoc使用相同的对话框创建一个新的New Pdoc

问题是:当我打开现有的Pdoc然后只保存或关闭它,然后我使用按钮创建一个新的注意=&gt;显示旧的/上一个(已保存的Pdoc)...

如果我刚刚创建了一个新笔记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方法。我想这就是问题所在。我想,(我不确定),我应该以这样的方式计算这个文档,当我创建一个newNote时,这个documentID不应该是viewScope.get("dlgDocUnid")。 谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你在XPage中定义了两个数据源,并尝试在对话框中使用它们,对吧?相反,我建议在xe:dialog内的面板中定义单个数据源。

我在博客上写了一个类似的例子。在此示例中,已使用工具提示对话框,但它具有相同的逻辑,您可以将xe:tooltipDialog替换为xe:dialog

http://lotusnotus.com/lotusnotus_en.nsf/dx/mini-patterns-for-xpages-parameter-editing-with-dialogs-1.htm

这里的想法是您使用名为viewScope的{​​{1}}变量。要打开现有文档,请将此变量设置为现有文档的注释ID。要创建新文档,该值将设置为noteId。然后根据此变量在对话框中定义数据源:

NEW

当您将数据源放在对话框中时,您不会在启动对话框之前刷新页面以加载或准备数据源,这是我当前的问题。

答案 1 :(得分:0)

是否忘记停用该标志以忽略请求参数。 听起来对话框始终与当前文档相关联,而不是与docid

中的参数相关联