2010-09-25 20 views
6

Estoy tratando de averiguar cómo vincular un evento javascript a un elemento seleccionado en GWT, sin embargo, el elemento seleccionado no se está construyendo en GWT, sino que proviene del HTML que estoy raspando desde otro sitio (un sitio de informe de un departamento diferente). Primero, un poco más de detalle:Enlace a elementos HTML en GWT

Estoy usando GWT y, al cargarlo, realizo una llamada ajax para obtener algo de HTML que incluye, entre otras cosas, un informe que quiero poner en mi página. Puedo obtener el HTML y analizar el div que me interesa. Eso es fácil de mostrar en mi página.

Aquí es donde me quedo atascado: en la parte de la página que estoy usando, hay un elemento selecto que puedo localizar fácilmente (tiene una identificación), pero me gustaría capturar el evento si mi usuario cambia ese valor (Quiero capturar los cambios en el cuadro de selección para poder hacer otra llamada ajax para reemplazar el informe, vinculando a la selección en esa página y comenzando todo el proceso nuevamente).

Por lo tanto, no estoy seguro de cómo, una vez que obtengo el HTML de un sitio remoto, cómo vincular un controlador de eventos a una entrada en ese fragmento, y luego inserto el fragmento en mi div de destino. ¡Cualquier consejo o sugerencia sería muy apreciada!

+0

El componente del que se está hablando está hecho de Javascript? Si es así, ¿es de alguna biblioteca especial? – Guilherme

Respuesta

9

¿Qué tal esto:

Element domSelect = DOM.getElementById("selectId"); 
ListBox listBox = ListBox.wrap(domSelect); 
listBox.addChangeHandler(new ChangeHandler() { 
    void onChange(ChangeEvent event) { 
     // Some stuff, like checking the selected element 
     // via listBox.getSelectedIndex(), etc. 
    } 
}); 

Usted debe obtener la idea general - envolver el elemento <select> en un ListBox. A partir de ahí, solo se trata de agregar un ChangeHandler a través del método addChangeHandler.

+1

En lugar de usar "new ListBox (domSelect)", el truco es llamar a "ListBox.wrap (domSelect)". ¡Funciona de maravilla! Gracias Igor! –

Cuestiones relacionadas