在xpage上我有一个组合框,其默认值是通过表达式语言设置的:
defaultValue="#{strings.field_mandate}"
这会填充正确的值。
如果我计算组合框的Disabled属性并通过以下方式计算计算文本控件中组合框的值:
getComponent("mandate").getValue()
我的行为很奇怪。
最初组合框已禁用且计算值正确(来自strings.properties文件的值)。但是,如果我将Disabled的值切换为false,则计算的文本值将变为#{strings.field_mandate}。
为什么会这样,我该如何避免这种情况?
<xp:comboBox id="mandate" value="#{ds.mandate}" defaultValue="#{strings.field_mandate}">
<xp:selectItem itemLabel="#{strings.field_mandate}" itemValue="null"/>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:getListMandates();}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:setSelectedMandateValues();}]]></xp:this.action>
</xp:eventHandler>
</xp:comboBox>
答案 0 :(得分:0)
尽量避免使用getComponent().getValue()
。计算应始终发生在组件绑定的值上。因此将其绑定到范围变量并将其设置为初始值。这应该可以缓解这个问题