2012-03-12 6 views
16

मैं प्रोग्रामबेटिक रूप से ListBox के ChangeEvent को आग लगाना चाहता हूं। मैं समारोह पाया है, लेकिन समझ में पैरामीटर की किस प्रकार मैं पारित करने के लिए की आवश्यकता नहीं है:जीडब्ल्यूटी। प्रोग्राम्स पर प्रोग्रामबॉक्स पर फायर चेंजवेन्ट।

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

उत्तर

27

आप का उपयोग कर एक विजेट पर एक देशी ChangeEvent आग कर सकते हैं:

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

यह केवल आग घटना और चयनित आइटम नहीं बदलता है। –

+2

सईद ज़ारिनफैम: आइटम को सेट करें, फिर स्ट्रेलोक की सलाह का उपयोग करके ईवेंट को आग लगें। – Vlad

0

यह है पुराने सवाल है, लेकिन मैं चाहता हूँ मेरी समाधान का हिस्सा है, क्योंकि यह केवल एक ही है कि मेरे लिए काम करता (gwt.version = 2.6.1 और com.github.jdramaix gwtchosen संस्करण = 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 
0

यह JSNI का उपयोग कर किसी ईवेंट को सक्रिय करना संभव है:

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