2010-09-25 31 views
6

Próbuję dowiedzieć się, jak powiązać zdarzenie javascript z wybranym elementem w GWT, jednak wybrany element nie jest budowany w GWT, ale pochodzi z kodu HTML, który skrobię z innej strony (strona z raportem z innego działu). Po pierwsze, nieco więcej szczegółów:Powiązanie z elementami HTML w GWT

Używam GWT i na ładunek wykonuję wywołanie ajax, aby uzyskać kod HTML, który zawiera, między innymi, raport, który chcę umieścić na mojej stronie. Mogę pobrać kod HTML i przeanalizować element div, który mnie interesuje. To jest łatwe do wyświetlenia na mojej stronie.

Oto, gdzie utknąłem: na części strony, której używam, istnieje element, który mogę łatwo zlokalizować (ma identyfikator), ale chciałbym uchwycić zdarzenie, jeśli mój użytkownik zmieni tę wartość (Chcę przechwycić zmiany w polu wyboru, aby móc wykonać kolejne wywołanie ajax, aby zastąpić raport, wiążąc do wyboru na tej stronie i ponownie uruchamiając cały proces).

Nie wiem więc, jak po uzyskaniu kodu HTML ze strony zdalnej powiązać procedurę obsługi zdarzeń z danymi wejściowymi tego fragmentu, a następnie wstawić fragment do mojego elementu docelowego. Każda rada lub wskazówki byłyby mile widziane!

+0

Komponent, o którym mówisz, składa się z Javascript? Jeśli tak, czy pochodzi z jakiejś specjalnej biblioteki? – Guilherme

Odpowiedz

9

Jak o tym:

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. 
    } 
}); 

Należy uzyskać ogólne pojęcie - owinąć element <select> w ListBox. Od tego momentu chodzi tylko o dodanie metody ChangeHandler za pomocą metody addChangeHandler.

+1

Zamiast używać "nowy ListBox (domSelect)", polega na wywołaniu "ListBox.wrap (domSelect)". Działa jak marzenie! Dzięki, Igor! –

Powiązane problemy