当另一个comboBox的值被改变时,重置ace:comboBox的值。

问题描述 投票:0回答:1

我有2个ace:comboBox组件到一个JSF页面中,当我改变combo1的值时,combo2的值必须重置为空。

        <ace:comboBox id="combo1" value="#{controller.value1}">
            <f:selectItems value="#{controller.values1}" />
            <ace:ajax event="valueChange" listener="#{controller.valueChange()}"/>
            <ace:ajax event="blur" listener="#{controller.valueChange()}"/>
        </ace:comboBox>

        <ace:comboBox id="combo2" value="#{controller.value2}">
            <f:selectItems value="#{controller.values2}" />
        </ace:comboBox>

当我改变combo1的值时,combo2的值必须被重置为空,这是控制器的函数代码。

public void contextChanged() {
    String selectedValue1 = getValue1();
    if(StringUtils.isNotBlank(selectedValue1)) {
        // populate combo2 select items
    } else {
        setValues2(null);
    }
    setValue2(null);
}

但是当我改变combo1的值时,combo2的值没有发生任何变化。

jsf xhtml icefaces
1个回答
0
投票

解决方法是给combo2添加标签。

        <ace:comboBox id="combo2" value="#{controller.value2}">
            <f:selectItems value="#{controller.values2}" />
            <ace:ajax/>
        </ace:comboBox>
© www.soinside.com 2019 - 2024. All rights reserved.