Das Speichern von Dokumenten & Events

Speichert man ein Dokument über die Javascript-Methode „save()„, werden die Events (QuerySave, Compute und PostSave) nicht ausgeführt.

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
   <xp:this.data>
      <xp:dominoDocument var="doc">
         <xp:this.querySaveDocument>
            <![CDATA[#{javascript:print ( "querySave" ) }]]>
         </xp:this.querySaveDocument>
      </xp:dominoDocument>
   </xp:this.data>

<xp:link escape="true" text="Link" id="link1">
   <xp:eventHandler event="onclick" submit="true"
   refreshMode="complete">
      <xp:this.action>
         <xp:executeScript script="#{javascript:doc.save()}">
         </xp:executeScript>
      </xp:this.action>
   </xp:eventHandler>
</xp:link>

</xp:view>

[In Fett: Speichern mittels „save()“]

Auf der Serverkonsole wird kein „QuerySave“ ausgegeben, das Event wird nicht ausgeführt. Damit die Events ausgeführt werden, muß die XPages-interne Funktion aufgerufen werden:

<xp:link escape="true" text="Link" id="link1">
   <xp:eventHandler event="onclick" submit="true"
      refreshMode="complete">
      <xp:this.action>
         <xp:saveDocument></xp:saveDocument>
      </xp:this.action>
   </xp:eventHandler>
</xp:link>

Verwendet man mehrere Datasources, muß die Reihenfolge beachtet werden, denn nur die letzte Datenquelle ist von der Aktion betroffen.

Allerdings kann man auch die Eigenschaften  eines Save-Buttons verwenden, um ein Event dazu zu bewegen, ein Dokument zu speichern und die Events der Datenquellen auszuführen:

<xp:link escape="true" text="Link" id="link2">
   <xp:eventHandler event="onclick" submit="true"
      refreshMode="complete" immediate="false" save="true">
   </xp:eventHandler>
</xp:link>

[In Fett: Die Eigenschaften eines Save-Buttons auf einem Link]

EDIT:

Nutzt man die Aktion „<xp:saveDocument>“ kann man die zu speichernde Datasource mittels dem „var„-Parameter angeben. Dann ist die Reihenfolge der Datasources irrelevant:

<xp:saveDocument var="trialDoc"></xp:saveDocument>

[In Fett: Erzwungene Speicherung der Datasource „trialDoc“]

Dieser Beitrag wurde unter Allgemein, ServerSide JavaScript, XPages abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.