2016-05-19 4 views
0

Meine Xpage ist im Lesemodus. Es gibt ein Notes-Feld mit einer Schaltfläche "Notizen hinzufügen". Klicken Sie auf die Schaltfläche, der Benutzer fügt Notizen in der Dialogbox hinzu und klickt auf "Notizen hinzufügen". Mit der Schaltfläche können Sie die Notizen hinzufügen und das Dokument speichern.Xpages: Refresh schreibgeschützt Feld auf Wettbewerb von DialogBox

Ich möchte das zugrunde liegende Notizen-Feld aktualisieren, so dass der Benutzer ihre Ergänzungen sehen wird. Wie kann ich das erreichen?

enter image description here

<?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"> 
    <xp:panel id="pnlAll"> 
     <xp:this.data> 
      <xe:objectData saveObject="#{javascript:PCModel.save()}" 
       var="PCModel"> 
       <xe:this.createObject><![CDATA[#{javascript:var pc = new com.scoular.model.PC(); 
var unid = sessionScope.get("key"); 
if (unid != null) { 
    pc.loadByUnid(unid); 
    sessionScope.put("key",""); 
    viewScope.put("readOnly","Yes"); 
} else { 
    pc.create(); 
    viewScope.put("readOnly","No"); 
} 
viewScope.status = pc.status; 
return pc;}]]></xe:this.createObject> 
      </xe:objectData> 
     </xp:this.data> 
     <xp:inputTextarea id="inputTextarea3" cols="1" rows="10" 
      disabled="true" value="#{PCModel.notes}"> 
     </xp:inputTextarea> 
     <xp:br></xp:br> 
     <xp:button value="Add Notes" id="button1"> 
      <xp:eventHandler event="onclick" submit="true" 
       refreshMode="complete"> 
       <xp:this.action><![CDATA[#{javascript:getComponent("dialogAddNotes").show()}]]></xp:this.action> 
      </xp:eventHandler> 
     </xp:button> 
     <xp:br></xp:br> 
     <xp:div styleClass="modal fade" id="model1" role="dialog"> 
      <xe:dialog id="dialogAddNotes" styleClass="modal-dialog" 
       title="Add Notes"> 
       <xp:div style="margin-left:10.0px;margin-right:10.0px"> 
        <xp:inputTextarea id="inputTextarea4" value="#{viewScope.addNotes}" 
         cols="1" rows="18"> 
        </xp:inputTextarea> 
       </xp:div> 
       <xp:div styleClass="modal-footer"> 
        <xp:button type="button" styleClass="btn btn-primary" id="button17" 
         value="Add Notes"> 
         <xp:eventHandler event="onclick" submit="true" 
          refreshMode="partial" refreshId="dialogAddNotes"> 
          <xp:this.action><![CDATA[#{javascript:var newLne = "\n"; 
var oldNte = PCModel.notes; 
var usrNme:String = userBean.displayName; 
var dte = session.createDateTime(@Now()); 

var lnkStr:String = "Notes added by " + usrNme + " at " + dte + newLne + newLne + viewScope.addNotes + newLne + newLne + oldNte; 

var newNotes:String = lnkStr 
PCModel.notes = newNotes; 
PCModel.save();}]]></xp:this.action> 
         </xp:eventHandler> 
        </xp:button> 
       </xp:div> 
      </xe:dialog> 
     </xp:div> 
    </xp:panel> 
</xp:view> 
+0

Haben Sie versucht, inputTextarea3 anstelle des Dialogs beim Speichern des Kommentars teilweise zu aktualisieren? –

+0

Pro, großartige Idee. Ich dachte, ich hätte das schon versucht, aber als ich es jetzt getan habe, hat es funktioniert, außer dass die Dialogbox nicht abgewiesen wurde. Sollte ich den Bereich aktualisieren, der das Feld UND die Dialogbox enthält? –

+0

Ich habe die Antwort gefunden. Ich habe XSP.closeDialog ('# {id: dlgAddNotes}') zum CSJS hinzugefügt und jetzt schließt es und es aktualisiert auch das Feld. Danke, großartig. –

Antwort

2

Sie müssen teilweise die aktualisierte Textbereich Feld aktualisieren aufgerufen inputTextarea3 statt den Dialog.

Verwandte Themen