XPages中保存的数据源和新的文档改变了原有的文档(XPages save data source

2019-07-18 22:44发布

我有一个文件数据源(创建没有父ID文件)结合到面板。 在面板我还有其他2个板。 在完成在面板1的字段我点击一个链接,显示第二面板和上有一个保存按钮。 一旦保存的文档出现在DB正确。

保存按钮做了DDS保存,然后清除所有字段并做外面板上的部分更新和面板上的部分执行过,因为我有我的主面板之外的其他的XPage DDS。

如果我现在就创建另一个文件中以前的文档进行了更新,而不是创建一个新文档。 我已经试过了DDS和其它选项的范围。 不知道下一个尝试的东西。

任何人都知道是什么问题?

Answer 1:

下面是一个例子,你如何可以添加新的数据源与局部刷新:

<xp:panel id="myPanel">
    <xp:this.data>
        <xp:dominoDocument var="document1"></xp:dominoDocument>
    </xp:this.data>
    <xp:br></xp:br>
    <xp:inputText id="inputText1" value="#{document1.Test}"></xp:inputText>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:button value="Save" id="buttonSave">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial" refreshId="myPanel">
            <xp:this.action>

                <xp:actionGroup>
                    <xp:saveDocument var="document1"></xp:saveDocument>
                    <xp:executeScript>
                        <xp:this.script>
                            <![CDATA[#{javascript:
                                var panel = getComponent("myPanel");
                                var ds = new com.ibm.xsp.model.domino.DominoDocumentData();
                                ds.setComponent(panel);
                                ds.setVar("document1");
                                panel.getData().clear();
                                panel.addData(ds);
                            }]]>
                        </xp:this.script>
                    </xp:executeScript>
                </xp:actionGroup>
            </xp:this.action>
        </xp:eventHandler>
    </xp:button>
</xp:panel>

希望这可以帮助

斯文

编辑:

增加了一个明确的(),从面板中删除所有以前定义的数据源。



Answer 2:

这是默认的行为。 如果您不想重装整个一个页面选择是摆脱数据源,并点击保存按钮时创建SSJS事件的新文档。



Answer 3:

我用斯文的答案成功地,然而,我不得不在部份服务器端JavaScript添加一个额外的行

<xp:executeScript>
    <xp:this.script>
        <![CDATA[#{javascript:
            var panel = getComponent("myPanel");
            var ds = new com.ibm.xsp.model.domino.DominoDocumentData();
            ds.setComponent(panel);
            ds.setVar("document1");
            ds.setFormName('form1');
            panel.getData().clear();
            panel.addData(ds);
            }]]>
    </xp:this.script>
</xp:executeScript>


文章来源: XPages save data source and new doc changes previous doc