在保存文档之前获取文档的unid,并在保存时不进行更改

时间:2016-06-30 15:45:29

标签: xpages

我有一个XPage,它有一个数据源document1。在保存文档之前,我想知道文档的unid。

似乎这是可能的,因为document1.getDocument().getUniversalID()在保存之前返回一个值。

但是,一旦保存文档,该值始终会更改,然后保持不变。有没有办法设置unid所以它在保存时不会改变?我已经尝试了if (document1.isNewNote()) document1.getDocument().setUniversalID(document1.getDocument().getUniversalID())但是在保存后它仍然在变化。

1 个答案:

答案 0 :(得分:2)

在dominoDocument' querySaveDocument事件中更改文档的ID。

if (document1.isNewNote()) {
    document1.getDocument().setUniversalID(yourID);
}

这是一个完整的XPage示例:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument
            var="document1"
            formName="Test">
            <xp:this.querySaveDocument><![CDATA[#{javascript:
              if (document1.isNewNote()) {
                document1.getDocument().setUniversalID(document1.getItemValueString("id"));
              }
            }]]></xp:this.querySaveDocument>
        </xp:dominoDocument>
    </xp:this.data>

    <xp:inputText
        value="#{document1.id}"
        defaultValue="#{javascript:document1.getDocument().getUniversalID()}">
    </xp:inputText>

    <xp:button
        value="Label"
        id="button1">
        <xp:eventHandler
            event="onclick"
            submit="true"
            refreshMode="complete"
            immediate="false"
            save="true">
        </xp:eventHandler>
    </xp:button>
</xp:view>