首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >h:selectManyListBox valueChangeListener没有调用

h:selectManyListBox valueChangeListener没有调用
EN

Stack Overflow用户
提问于 2012-03-07 11:06:19
回答 1查看 3.2K关注 0票数 0

我正在使用Netbeans 6.9.1。我使用的代码中,我只是使用selectManyListBox,我希望当用户选择所有的值时,我的valueChangeListener就是调用。在这里我在做什么

代码语言:javascript
复制
<h:selectManyListbox id="countryListBox" size="5" value="#{news.saarcCountries}"
                     onselect="form.submit();" valueChangeListener="#{news.changeAppearOnCountryPage}">
    <f:selectItems value="#{news.saarcCountriesMap}"/>
    <f:ajax render="countryPageExpiryCalender" />

</h:selectManyListbox>

<p:calendar id="countryPageExpiryCalender" value="#{news.countryPageExpiryDate}"
            navigator="true" style="z-index: 1;" locale="en" mode="popup"
            pattern="dd/MM/yyyy" showOn="button" readOnlyInputText="true"
            disabled="#{!news.appearOnCountryPage}" />

我也尝试过这种方法,而不是onselect,我使用了类似于

代码语言:javascript
复制
onchange="submit()"

这是我的valueChangeListener

代码语言:javascript
复制
@ManagedBean(name = "news")
@ViewScoped
public class News {

    private Map<String, String> saarcCountriesMap = new LinkedHashMap<String, String>();
    private Set<String> saarcCountries = new TreeSet<String>();
    ...

    public void changeAppearOnCountryPage(ValueChangeEvent vcEvent){
        Iterator iter = saarcCountries.iterator();
        while(iter.hasNext()) {

            String name = (String)iter.next();
            System.out.println(name);
        }
    } //end of changeAppearOnCountryPage


} //end of class News

我希望当用户从saarcCountries中选择所有值时,我的valueChangeListener就是call,并且我检查我是否有selectmanyListBox变量中的值,然后设置appearOncountryPage = true,所以我的日历是呈现的。但我的valueChangeListener不打电话。我做错什么了?

如果我选择onselect,那么我想问一件事,当我选择了所有的值之后,这个事件会触发一件事情。我希望当用户选择所有值时,我的ValueChangeListener是call,用户选择的值将在我的saarcCountries变量中。所以我可以检查用户选择的值。

我认为onchange()对我来说是不合适的。请帮帮忙。因为这件事我被困住了

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-03-07 11:15:13

试着这样做:

代码语言:javascript
复制
<h:selectManyListbox id="countryListBox" size="5" value="#{news.saarcCountries}">
    <f:selectItems value="#{news.saarcCountriesMap}"/>
    <f:ajax event="change" listener="#{news.changeAppearOnCountryPage}" render="countryPageExpiryCalender"/>
</h:selectManyListbox>

您不需要form.submit();因为可以使用ajax.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9600294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档