2013-04-24 54 views
0

真的在尋找一個想法,爲什麼我的XPage正在這樣做。部分刷新動態字段綁定會刪除值

我有場與動態綁定:

<xp:inputText id="CORE_Input" value="#{Document[compositeData.PARA_DataBinding]}"</xp:inputText> 

這工作不幹好,直到我開始根據筆記的公式來隱藏它。

讓我告訴它做什麼:我點擊我的XPage中的複選框。該複選框正在運行調用:Document.getDocument(true)的SSJS,以將數據從我的XPage重新導入notesdocument而不保存它。一旦完成,我可以使用session.evaluate("checkbox!="something"")來隱藏inputText字段。

它的工作很好,但問題是,一旦我解開復選框,值從輸入字段中消失。

如果您知道更好的方式來使用筆記公式隱藏或輸入字段爲空的原因一旦它回來將不勝感激。這裏有一個例子:

<?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:checkBox id="checkBox1" value="#{Document.Check}" text="hide" checkedValue="hide"> 
    <xp:eventHandler event="onchange" submit="false"> 
     <xp:this.script><![CDATA[document.getElementById("#{id:hide}").click()]]></xp:this.script> 
    </xp:eventHandler> 
    </xp:checkBox> 
    <xp:panel id="test"> 
    <xp:inputText id="CORE_Input" type="#{compositeData.NODE}" 
     value="#{Document[compositeData.PARA_DataBinding]}" 
     defaultValue="#{javascript:compositeData.PARA_DefaultValue}" style="margin-left:24px"> 
     <xp:this.styleClass><![CDATA[#{javascript:DOMElement.getAttribute("stylesize");}]]></xp:this.styleClass>  <xp:this.rendered><![CDATA[#{javascript:var doc:NotesXspDocument=Document; 
     var erg=session.evaluate('Check="hide"',doc.getDocument()); 
     if(@Text(erg)=="1") 
     {return false} 
     else 
     {return true}}]]></xp:this.rendered> 
    </xp:inputText> 
    <xp:button value="hide" id="hide"> 
     <xp:eventHandler event="onclick" submit="true" 
      refreshMode="partial" refreshId="test"> 
      <xp:this.action> 
      <![CDATA[#{javascript:var doc:NotesXspDocument=Document;doc.getDocument(true)}]]></xp:this.action> 
     </xp:eventHandler></xp:button> 
    <xp:button value="unhide" id="unhide"> 
     <xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="test"> 
      <xp:this.action><![CDATA[#{javascript:sessionScope.hide=""}]]></xp:this.action> 
     </xp:eventHandler></xp:button> 
    </xp:panel></xp:view> 
+0

你爲什麼要使用Notes公式隱藏字段? – 2013-04-24 16:04:54

+1

提供更多來源 – 2013-04-24 22:09:40

+0

我必須使用notesformula它的一個要求。 – user2316219 2013-04-25 07:27:04

回答

0

你的問題是你的默認值:一旦組件被取消隱藏,價值被重新計算。您必須檢查組件是否部分刷新。如果是這樣,停止重新計算:

<xp:this.defaultValue> 
    <![CDATA[#{javascript: 
     importPackage(com.ibm.xsp.ajax); 
      if(AjaxUtil.isAjaxPartialRefresh(facesContext) == true) 
       return; 
      compositeData.PARA_DefaultValue 
    }]]> 
</xp:this.defaultValue> 

這應該解決您的問題