2012-03-07 4 views
0

Я использую Netbeans 6.9.1. Я использую код, в котором я просто использую selectManyListBox, и я хочу, чтобы пользователь выбирал все значения, тогда мой метод valueChangeListener является вызовом. Вот то, что я делаюh: selectManyListBox valueChangeListener не вызывает

<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 я использовал onchnage как

onchange="submit()" 

Вот мой valueChangeListener

@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 

Я хочу, чтобы, когда пользователь выбирает все значения из selectmanyListBox, тогда мое значениеChangeListener является вызовом, и я проверяю, есть ли у меня значения в saarcCountries переменной, тогда я установил появляютсяOncountryPage = true, поэтому мой каландр визуализируется. Но мой valueChangeListener не звонит. Что я делаю неправильно?

Если я выбираю onselect, то я хочу спросить одну вещь, это событие будет срабатывать всякий раз, когда я выберу значение, после того, как я выбрал все значения. Я хочу, чтобы при выборе пользователем всех значений мой ValueChangeListener был вызовом, а значения, которые пользователь выбрал, будут в моей переменной saarcCountries. Поэтому я могу проверить значения, выбранные пользователем.

Я думаю, что замена() не подходит в моем случае. Пожалуйста помоги. Я застрял из-за этого :(

Благодаря

ответ

2

попробовать это так:

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

Смежные вопросы