xpage

时间:2017-03-01 14:24:36

标签: xpages xpages-ssjs

在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>

1 个答案:

答案 0 :(得分:0)

尽量避免使用getComponent().getValue()。计算应始终发生在组件绑定的值上。因此将其绑定到范围变量并将其设置为初始值。这应该可以缓解这个问题