jsf i rozwijane combo
=?ISO-8859-2?Q?Marcin_Pieni=B1=BFek?= - 28-05-2006 00:07
jsf i rozwijane combo
hej
mam rozwijane combo, które odpowiada za odpowiednik plik css (tzn. pseudo skorki na stronie). jak zrobić by po wybraniu automatycznie strona zostala przeladowana i wczytany ten. css? aktualnie mam przecisk, ale to trochę bezsensowne jest jeszcze akceptować coś takigo. wszystko smiga na tomcacie i jsf.
pozdrawiam Marcin
Adam - 28-05-2006 00:07
Marcin Pieniążek <WYTNIJpieniazek@poczta.onet.plTO> napisał(a):
> hej > > mam rozwijane combo, które odpowiada za odpowiednik plik css (tzn. > pseudo skorki na stronie). jak zrobić by po wybraniu automatycznie > strona zostala przeladowana i wczytany ten. css? aktualnie mam przecisk, > ale to trochę bezsensowne jest jeszcze akceptować coś takigo. wszystko > smiga na tomcacie i jsf.
Może wykorzystaj f:valueChangeListener dla tego combo, tylko musisz mieć artybut binding ustawiony na pole w managed-bean, na którym masz obekt reprezentujący to combo (HtmlSelectManyMenu ?). W metodzie listenera z poziomu kodu będziesz mógł wtedy zmienić styl. Mam nadzieję, że pomogłem :)
Pzdr, Adam
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Jacek Laskowski - 30-05-2006 04:07
Marcin Pieniążek napisał(a): > hej > > mam rozwijane combo, które odpowiada za odpowiednik plik css (tzn. > pseudo skorki na stronie). jak zrobić by po wybraniu automatycznie > strona zostala przeladowana i wczytany ten. css? aktualnie mam przecisk, > ale to trochę bezsensowne jest jeszcze akceptować coś takigo. wszystko > smiga na tomcacie i jsf.
Nie pozostaje nic innego jak napisać skrypt JavaScript, który będzie podłączony do onclick, czy innego zdarzenia generowanego przez listę combobox, która będzie zatwierdzała <h:form>, w której się znajduje. Przyjrzyj się temu, co generowane jest w <h:commandLink> albo <h:commandButton> w akcji onsubmit.
Niestety rozwiązanie powyżej może być dosyć trudne dla osoby niezaznajomionej z JSF+JavaScript, więc może inne pytanie: dlaczego nie wyświetlisz strony bez dodatków JSF, aby JavaScript w combobox sprowadził się do onclick='form['moj_formularz'].submit();' ? Może nawet dałoby się zanurzyć (hint: jsp:include) stronę bez JSF z własnym formularzem w stronie JSF?
> Marcin
Jacek
-- Jacek Laskowski http://www.laskowski.net.pl
Jacek Laskowski - 30-05-2006 04:07
Adam napisał(a): > Marcin Pieniążek <WYTNIJpieniazek@poczta.onet.plTO> napisał(a): > >> hej >> >> mam rozwijane combo, które odpowiada za odpowiednik plik css (tzn. >> pseudo skorki na stronie). jak zrobić by po wybraniu automatycznie >> strona zostala przeladowana i wczytany ten. css? aktualnie mam przecisk, >> ale to trochę bezsensowne jest jeszcze akceptować coś takigo. wszystko >> smiga na tomcacie i jsf. > > Może wykorzystaj f:valueChangeListener dla tego combo, tylko musisz mieć > artybut binding ustawiony na pole w managed-bean, na którym masz obekt > reprezentujący to combo (HtmlSelectManyMenu ?). W metodzie listenera z poziomu > kodu będziesz mógł wtedy zmienić styl. > Mam nadzieję, że pomogłem :)
Raczej nie ;) (a może nawet :( ).
Sprawa rozbija się o fakt zatwierdzenia formularza, który nadal żyje w przeglądarce i jeszcze *nie* został zatwierdzony do wysłania do serwera, aby tam mogła być obsłużona przez f:valueChangeListener (jak napisał autor - za pomocą h:commandButton).
Pytanie inaczej postawione mogłoby brzmieć:
Jak zatwierdzić <h:form> za pomocą JavaScript uruchomiony przez wybranie elementu w combobox?
> Adam
Jacek
-- Jacek Laskowski http://www.laskowski.net.pl
=?ISO-8859-2?Q?Marcin_Pieni=B1=BFek?= - 30-05-2006 04:08
Jacek Laskowski napisał(a): > Marcin Pieniążek napisał(a): >> hej >> >> mam rozwijane combo, które odpowiada za odpowiednik plik css (tzn. >> pseudo skorki na stronie). jak zrobić by po wybraniu automatycznie >> strona zostala przeladowana i wczytany ten. css? aktualnie mam przecisk, >> ale to trochę bezsensowne jest jeszcze akceptować coś takigo. wszystko >> smiga na tomcacie i jsf. > > Nie pozostaje nic innego jak napisać skrypt JavaScript, który będzie > podłączony do onclick, czy innego zdarzenia generowanego przez listę > combobox, która będzie zatwierdzała <h:form>, w której się znajduje. > Przyjrzyj się temu, co generowane jest w <h:commandLink> albo > <h:commandButton> w akcji onsubmit. > > Niestety rozwiązanie powyżej może być dosyć trudne dla osoby > niezaznajomionej z JSF+JavaScript, więc może inne pytanie: dlaczego nie > wyświetlisz strony bez dodatków JSF, aby JavaScript w combobox > sprowadził się do onclick='form['moj_formularz'].submit();' ? Może nawet > dałoby się zanurzyć (hint: jsp:include) stronę bez JSF z własnym > formularzem w stronie JSF? > >> Marcin > > Jacek > Nie trzeba JavaScript, choć de facto to jest zamieniane na JavaScript ;) Poniżej moje rozwiązanie.
<h:form><h:selectOneMenu value="#{profileBean.profil}" valueChangeListener="#{profileBean.processValueCha nge}" immediate="true" onchange="this.form.submit();"><f:selectItems value="#{profileBean.doWyboru}" /></h:selectOneMenu></h:form>
public List<SelectItem> getDoWyboru() { ArrayList al = new ArrayList(); al.add(new SelectItem("css/zielony.css", "Zielony")); al.add(new SelectItem("css/czerwony.css", "Czerwony")); return al; }
public void processValueChange(ValueChangeEvent value) throws AbortProcessingException { profil = (String)value.getNewValue(); FacesContext.getCurrentInstance().renderResponse() ; }
pozdrawiam Marcin
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
JSF i otworzenie nowego okienka
JSF i adres w przeglądarce
JSF i autoryzacja
jsf i date
JSF i bledy
Rozwijany tekst jak z http://www.punters.pl/typy.php
[Struts] rozwijana lista za pomoca html:optionsCollection
=?iso-8859-2?q?poszukuj=EA?= programisty (x)harbur
Nowy system zarobku dla webmasterow
Jak podzielić projekt w PhotoShopie na 3 równe części?
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|