2014-09-05 42 views
1

最近我有一些头痛,部分刷新。部分刷新后xpages组合框值设置为空

组合框触发一个局部刷新到面板(用于从面板呈现的场),对onChange事件:

<xp:comboBox value="#{Contr.txt_tipcontractcv}" id="txt_tipcontractcv1"> 

     <xp:selectItems id="selectItems1"> 
         <xp:this.value><![CDATA[#{javascript:return ""}]]></xp:this.value> 
     /xp:selectItems> 
     <xp:selectItems id="selectItems2"> 
         <xp:this.value><![CDATA[#{javascript:@DbColumn(@DbName(),"SetupvwTipuriContracteC",1);}]]></xp:this.value> 
     </xp:selectItems> 
     <xp:eventHandler event="onchange" submit="true"> 
        <xp:this.script><![CDATA[XSP.partialRefreshGet("#{id:FisaP}", { 

    }); 
    ]]>    </xp:this.script> 
     </xp:eventHandler> 
</xp:comboBox> 

和代码为面板&领域:

<xp:panel id="FisaP"> 
      <xp:label id="label4"> 
       <xp:this.value><![CDATA[#{javascript:"Fisa contract "+ Contr.getItemValueString("txt_tipcontractcv1")}]]></xp:this.value> 
       <xp:this.rendered><![CDATA[#{javascript: 
      Contr.getItemValueString("txt_tipcontractcv1") == "Vanzare-Cumparare" 
     }]]></xp:this.rendered> 

      </xp:label> 
     </xp:panel> 

但是,当我选择一个值时,部分刷新似乎被触发,但立即组合框值为空 - 并且xpage的总刷新发生,并且面板中的字段未显示。我错过了什么?

+0

这与您的问题/问题无关,但我强烈建议您尽可能少使用样式标签。你应该在CSS样式表中创建一个类。这不仅是一个更好的网络练习,而且它还会使阅读XSP标记更容易一些,因为那里的代码较少。 – 2014-09-05 11:27:38

回答

0

你onchange事件做比预计的更:

  1. XSP.partialRefreshGet()意味着你正在做的 面板的局部刷新。但是因为它是一个partialRefreshGet(),所以你没有通过 用户正在做的任何改变。因此,服务器不知道用户所做的任何更改 。
  2. submit =“true”表示在您运行CSJS的任何 之后,它正在对页面进行全面刷新。所以这就是删除用户在页面上任何地方输入的任何内容 。

我想你想提交=“false”以便运行你的CSJS。

如果要在onchange运行之前立即考虑浏览器上的更改,请不要使用partialRefreshGet。相反使用:

<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="FisaP" disableValidators="true"> 
     </xp:eventHandler> 

转换器仍然运行,所以如果你把例如文本到数字字段中,它仍然会失败。

+0

我添加submit =“false”,但部分刷新似乎不再运行。我应该修改XSP.partialRefreshGet()吗? – 2014-09-05 11:13:35

+0

它在Firefox的网络选项卡(或您的浏览器的相关开发人员工具)上显示的内容是什么?这也应该确认,如果提交=“真”引起全面更新。 – 2014-09-05 11:16:56

+0

我将不得不检查。奇怪的是,这种技术工作得很好 - http://stackoverflow.com/questions/25619967/xpages-hiding-showing-fields-based-on-a-combobox-value/25623177#25623177 - 从现在起它不是'不再工作了。 – 2014-09-05 11:20:56