Я использую Netbeans 6.9.1. Я использую код, в котором я просто использую 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()"
Вот мое значение ChangeListener
@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, тогда мой valueChangeListener был call, и я проверял, есть ли у меня значения в переменной saarcCountries , тогда я устанавливаю появлятьсяOncountryPage = true , так что мой календарь это рендер. Но мой valueChangeListener не вызывает. Что я делаю не так?
Если я выбираю onselect, то я хочу спросить одну вещь, это событие будет вызываться всякий раз, когда я выбираю значение, или после того, как я выбрал все значения. Я хочу, чтобы, когда пользователь выбирал все значения, тогда мой ValueChangeListener вызывался, и значения, которые выбрал пользователь, будут в моей переменной saarcCountries. Так что я могу проверить значения, выбранные пользователем.
Я думаю, onchange () не подходит в моем случае. Пожалуйста помоги. Я застрял из-за этого: (
Спасибо