Ответ 1
Вы можете запустить собственный виджет ChangeEvent, используя:
DomEvent.fireNativeEvent(Document.get().createChangeEvent(), yourListBox);
Я хочу программно запускать ListBox ChangeEvent
. Я нашел функцию, но не понимаю, какой тип параметра мне нужно передать:
DomEvent.fireNativeEvent(NativeEvent - where???, listBox());
Вы можете запустить собственный виджет ChangeEvent, используя:
DomEvent.fireNativeEvent(Document.get().createChangeEvent(), yourListBox);
Это старый вопрос, но я хочу поделиться своим решением, потому что он работает только для меня (gwt.version = 2.6.1 и com.github.jdramaix gwtchosen version = 1.2.0)
public class ChosenListBoxNew extends ChosenListBox {
public ChosenListBoxNew() {
super();
}
public void fireUpdateEvent(){
ensureChosenHandlers().fireEvent(new ChosenChangeEvent(this.getValue(), this.getSelectedIndex(), null));
}
}
И вы можете запустить событие обновления, вызвав fireUpdateEvent() нового класса:
moduleSelectionLst.setSelectedIndex(-1); //Update selected value
moduleSelectionLst.update(); //Update UI
moduleSelectionLst.fireUpdateEvent(); // Fire update event
Можно запустить событие с использованием JSNI:
public native void fireOnChange(String elementId)/*-{
var element = $doc.getElementById(elementId);
if ( element )
element.onchange();
}-*/;