xpages组合框值在部分刷新后设置为null
我最近有些头痛,只是有点提神 在onChange事件中,组合框触发对面板的部分刷新(用于呈现该面板中的字段):xpages组合框值在部分刷新后设置为null,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我最近有些头痛,只是有点提神 在onChange事件中,组合框触发对面板的部分刷新(用于呈现该面板中的字段): <xp:comboBox value="#{Contr.txt_tipcontractcv}" id="txt_tipcontractcv1"> <xp:selectItems id="selectItems1"> <xp:this.value><![CDATA[#{ja
<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:selectItems>
以及面板和字段的代码:
<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>
但是,当我选择一个值时,似乎会触发部分刷新,但combobox值立即为null,并且会对xpage进行完全刷新,并且不会显示面板中的字段。我错过了什么?您的onchange活动所做的远远超出您的预期:
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="FisaP" disableValidators="true">
</xp:eventHandler>
转换器仍在运行,因此如果您将文本等放入数字字段,它仍将失败。I add submit=“false”,但部分刷新似乎不再运行。我是否也应该修改XSP.partialRefreshGet()?它在Firefox的网络选项卡(或浏览器的相关开发工具)上显示了什么?这还应该确认submit=“true”是否导致完全刷新。我必须检查。奇怪的是,这种技术工作得非常好——从现在起它就不再工作了。它在那里工作是因为它正在对页面进行完全重新加载(submit=“true”)。partialRefreshGet()根本没有运行。如果使用submit=“false”,将运行partialRefreshGet,并且仅触发渲染响应阶段。如果使用submit=“true”,则所有六个生命周期阶段都会运行,而partialRefreshGet不会运行(记录的第一个阶段是还原视图,而不是呈现响应)。所有这些阶段都将包括验证,如果验证失败,组合框将不会更新。我建议使用SSJS debugger或其他调试工具查看标签计算中的值。当partialRefreshGet运行并触发渲染响应阶段时,它只是执行get,因此,就服务器而言,combobox值是不变的。这与您的问题无关,但我强烈建议您尽可能少使用样式标记。您应该在CSS样式表中创建一个类。这不仅是一个更好的web实践,而且还将使读取XSP标记变得更容易,因为那里的总体代码更少。