2016-05-19 17 views
0

私のXpageは読み取りモードです。 [メモを追加]ボタンがある[メモ]フィールドがあります。ボタンをクリックすると、ユーザはダイアログボックスでノートを追加し、「ノートを追加」をクリックします。このボタンは、メモを追加して文書を保存する作業を行います。Xpages:DialogBoxの競技会で読み取り専用フィールドを更新

基本的なメモフィールドを更新して、ユーザーに追加情報が表示されるようにしたいとします。どうすればこれを達成できますか?

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

コメントを保存するときにダイアログの代わりにinputTextarea3を部分的にリフレッシュしようとしましたか? –

+0

素晴らしいアイデアだと思います。私はすでにこれを試したと思っていましたが、私が今やったとき、ダイアログボックスが解雇されなかったことを除いて、それは機能しました。フィールドとダイアログボックスを含む領域をリフレッシュする必要がありますか? –

+0

答えが見つかりました。私はCSJSにXSP.closeDialog( '#{id:dlgAddNotes}')を追加しましたが、今度はそれを閉じてフィールドを更新します。ありがとう、素晴らしい。 –

答えて

2

あなたは部分的にinputTextarea3と呼ばれる更新テキストエリアのフィールドの代わりに、ダイアログをリフレッシュする必要があります。

関連する問題