GWT. Fire ChangeEvent в ListBox программно. - программирование
Подтвердить что ты не робот

GWT. Fire ChangeEvent в ListBox программно.

Я хочу программно запускать ListBox ChangeEvent. Я нашел функцию, но не понимаю, какой тип параметра мне нужно передать:

DomEvent.fireNativeEvent(NativeEvent - where???, listBox());
4b9b3361

Ответ 1

Вы можете запустить собственный виджет ChangeEvent, используя:

DomEvent.fireNativeEvent(Document.get().createChangeEvent(), yourListBox);

Ответ 2

Это старый вопрос, но я хочу поделиться своим решением, потому что он работает только для меня (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

Ответ 3

Можно запустить событие с использованием JSNI:

public native void fireOnChange(String elementId)/*-{
    var element = $doc.getElementById(elementId);
    if ( element )
        element.onchange();
}-*/;