2016-05-21 5 views
1

Ich habe viele der Blog-Posts gelesen, die eine teilweise Aktualisierung von mehr als einem Element durchführen, aber ich kann es scheinbar nicht zum Laufen bringen.Wie eine teilweise Aktualisierung von mehreren Elementen in Xpages korrekt durchgeführt wird

Ich machte ein "Spielzeug" Beispiel, eine Xpage mit zwei Feldern und einem Knopf. Beide Felder sind an einen sessionScope-Zähler gebunden. Die Schaltfläche erhöht den Zähler und führt eine partielle Aktualisierung des umgebenden Bereichs durch.

Ich möchte eine partielle Aktualisierung auf dem ersten Feld, das nicht in der Anzeige ist [in meiner realen Xpage die beiden Felder sind sehr weit auseinander auf dem Formular.

Ich habe viele verschiedene Dinge versucht, um dies zum Laufen zu bringen, aber keine funktionierte. Ist das überhaupt möglich?

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex" 
    xmlns:xc="http://www.ibm.com/xsp/custom" 
    style="background-position:center left" 
    xmlns:on="http://www.openntf.org/domino/xsp" viewState="nostate" 
    xmlns:debug="http://www.openntf.org/xsp/debugtoolbar"> 

    First Var<br></br> 

    <xp:text escape="true" id="computedField1" value="#{sessionScope.number}"> 
    </xp:text> 

     <br></br> 
     <xp:br></xp:br> 
     <br></br> 

    Second Var<xp:panel id="pnl1"> 
     <xp:text escape="true" id="computedField2" value="#{sessionScope.number}"> 
     </xp:text> 
     <br></br> 
     <br></br> 
     <xp:button value="Label" id="button1"> 
      <xp:eventHandler event="onclick" submit="true" 
       refreshMode="partial" refreshId="pnl1" execMode="partial" 
       execId="pnl1"> 
       <xp:this.action><![CDATA[#{javascript:var t = sessionScope.number + 1; 
sessionScope.number = t;}]]></xp:this.action> 
      </xp:eventHandler> 
     </xp:button> 
    </xp:panel> 

</xp:view> 

Lesen Sie Knuts Link und habe dies zum Funktionieren gebracht. Ich habe den Event-Handler des Buttons geändert und es hat funktioniert. Hier ist der Code:

  <xp:eventHandler event="onclick" submit="true" 
       refreshMode="partial" refreshId="pnl1" execMode="partial" 
       execId="pnl1"> 
       <xp:this.action><![CDATA[#{javascript:var t = sessionScope.number + 1; 
sessionScope.number = t;}]]></xp:this.action> 
       <xp:this.onComplete><![CDATA[XSP.partialRefreshPost("#{id:computedField1}");]]></xp:this.onComplete> 
      </xp:eventHandler> 
+0

Verwendung XSP.partialRefreshPost: http://avatar.red-pill.mobi/tim/blog.nsf/d6plinks/TTRY- 84B6VP –

+0

Ich hatte das gelesen, konnte es aber nicht herausfinden. Lesen Sie es noch ein paar Mal sorgfältig durch und jetzt verstehe ich es. Ich aktualisiere meinen obigen Code zugunsten anderer. Schreibe dies als Antwort und ich werde dir Kredit geben. Vielen Dank! –

Antwort

Verwandte Themen