xpages保存/取消操作场景

xpages保存/取消操作场景,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我将简要介绍我的小项目应用程序: 主要医生。内容是Cdoc(包含字段和按钮的数据源)。此按钮显示一个对话框,即Pdoc(数据源)-在显示按钮之前,我将保存文档。要获取UNID,然后将其传递给Pdoc,我想将Cdoc和Pdoc与UNID链接起来。 显示对话框的“我的”按钮: <xp:button value="Adding Pdoc from the dialog" id="button3" styleClass="lotusFormButton" refreshMode="

我将简要介绍我的小项目应用程序:

主要医生。内容是Cdoc(包含字段和按钮的数据源)。此按钮显示一个对话框,即
Pdoc
(数据源)-在显示按钮之前,我将保存文档。要获取UNID,然后将其传递给
Pdoc
,我想将
Cdoc
Pdoc
与UNID链接起来。 显示对话框的“我的”按钮:

<xp:button value="Adding Pdoc from the dialog" id="button3"
        styleClass="lotusFormButton" refreshMode="partial">

        <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()}]]></xp:this.action>
        </xp:eventHandler>

因此,它保存了文档。从
Pdoc
,它们显示在
Cdoc
的嵌入式视图中

主要的。文档
Cdoc
还包含2个(操作)按钮:

保存
问题是:

假设我将创建3个文档。从
Pdoc
对话框中,Cdoc。已保存(因为已获取UNID)。如果使用
Cdoc
save保存,则
view.xsp
中的
我的主视图面板将显示:

  • 一个医生<代码>Cdoc
及其3个
Pdoc
文档。(我只需要展示这个箱子)

  • 另一个
    Cdoc
    (我想当我第一次获取UNID并保存
    Cdoc
    以获取UNID时,这就是本例中的
    Cdoc
    。顺便说一句,如果我再次使用
    save
    按钮保存
    Cdoc
    ,UNID会改变吗?)对话框中的Pdoc
  • 我的
    Cdoc
    中的
    保存
    按钮应该是什么样的?我是否也应该从
    Pdoc
    按钮更改
    Save

    谢谢您的时间。

    我相信按钮上的save=“true”将提交并保存页面上的所有数据源。这可以解释伪造的Pdoc文件。您正在调用save-in脚本,因此不需要save=“true”-您只需为按钮使用普通按钮类型而不是提交类型


    文档保存后,UNID将不会更改。

    My Cdoc:谢谢,它现在似乎正在工作,但关于显示对话框的我的按钮有一个问题:如果我打开一个现有Cdoc(已保存),然后添加一个新的Pdoc(从对话框中,使用按钮),我的包含UNID的计算文本正在更改,单击按钮时。我的按钮代码:if(Cdoc.isNewNote(){Cdoc.save();}Cdoc.setValue(“computedField3”,Cdoc.getDocument().getUniversalID());getComponent('exampleDialog').show()您的Cdoc与上面的注释完全相同吗?如果是这样,则在Cdoc上设置ignoreRequestParams,而根本不设置documentId属性。这意味着无论您是从视图打开文档还是创建新文档,Cdoc都将始终是新文档。因此,大学会发生变化也就不足为奇了。我建议查看dominoDocument数据源,可能是《掌握XPages第二版》第7章开头的部分。我在两个月前订购了掌握XPages,本周我收到了回复,它将在本周到达。我还在等。那么,我应该将ignoreRequestParams设置为false吗?我的按钮代码是:if(Cdoc.isNewNote()){Cdoc.save();Cdoc.setValue(“computedField3”,Cdoc.getDocument().getUniversalID());getComponent('exampleDialog').show()}else{Cdoc.setValue(“computedField3”,Cdoc.getDocument().getUniversalID());getComponent('exampleDialog').show())。是的,使用默认的ignoreRequestParams=“false”。祝你好运掌握XPages。它看起来令人畏惧,因为它的大小,但它的伟大的内容充分。
    <xp:button value="Salvare" id="button6" styleClass="lotusFormButton">
    
    <xp:eventHandler event="onclick"
        submit="true" refreshMode="partial" immediate="false"
        save="false" refreshId="viewPanel1">
            <xp:this.action><![CDATA[#{javascript:Pdoc.save();     
    getComponent('exampleDialog').hide();
       }]]>
               </xp:this.action>
    </xp:eventHandler>
    
    Cancel: redirect to Previous Page.
    
    Save
    <xp:button value="Salvare" id="buttonSave" styleClass="lotusFormButton" rendered="#{javascript:currentDocument.isEditable()}">
    
                <xp:eventHandler event="onclick" submit="true"
                    refreshMode="partial" immediate="false" save="true"
                    id="eventHandler1">
                    <xp:this.action><![CDATA[#{javascript:if (Cdoc.getItemValueString("txt_UNID")!= "") { 
    
    Cdoc.save(); 
    }
    facesContext.getExternalContext().redirect("http://ourserver.ro/XApp.nsf/view.xsp")
    
    }]]></xp:this.action>
                </xp:eventHandler>
    </xp:button>