2010-10-20 9 views
5

voglio chiamare cliccare funzione di evento per il pulsante in GWT ... Ho provato questo codice, ma non sta funzionando ..chiamata click() funzione di programmazione in GWT

Button btnAddField = new Button(); 
btnAddField.setText("Add"); 
btnAddField.setWidth("225px"); 
btnAddField.addClickHandler(new btnAddFieldButtonClickListener()); 


private class btnAddFieldButtonClickListener implements ClickHandler{ 
     public void onClick(ClickEvent event) { 
Window.alert("Called Click Event"); 
} 
} 

questa funzione wiil telefonare al fare clic sul pulsante ma non chiama quando chiamare questa funzione btnAddField.click()

+0

Presumo che il pulsante sia aggiunto al DOM quando si chiama 'click()'? –

+0

allora sai come possiamo risolvere questo problema? – Kandha

risposta

2

risolvo questo problema utilizzando questo codice

btnAddField.fireEvent(new ButtonClickEvent()) 

private class ButtonClickEvent extends ClickEvent{ 
     /*To call click() function for Programmatic equivalent of the user clicking the button.*/ 
    } 

Sta funzionando bene ora.

6

Si può anche provare:

view.btnAddField.fireEvent(new ClickEvent() { }); 

(E 'un piccolo hack, perché com.google.gwt.event.dom.client.ClickEvent ha protetto costruttore.)

o

DomEvent.fireNativeEvent(Document.get().createClickEvent(0, 0, 0, 0, 0, 
      false, false, false, false), view.btnAddField); 

Poi, in entrambi i casi, non c'è bisogno per creare classi separate e interrompere l'incapsulamento per i gestori al fine di testare gli eventi di clic.

Problemi correlati