PDA

Visualizza la versione completa : [JSP] Filtro tabella


nemok
08-07-2003, 11:23
Ho un piccolo problema con una jsp. IN pratica eseguita una query ottengo una lista di oggetti di cui stampo i campi in una tabella con un bel ciclo.Su questa tabella ora dovrei implementare dei filtri in base ai valori dei campi.Ad esempio potrei voler visualizzare solo i record con un determinato campo con valore "pippo".La cosa importante è che non voglio rieseguire la query (è abbastanza pesante).
Pensavo di memorizzare la lista ottenuta dalla query nella sessione in modo da averla a disposizione all'occorrenza.Per rendere l'effetto filtro mifgliore ho trovato un javascript che mi permette di richiamare una funzione "OnChange",ovvero solo selezionando la regola del filtro da un menù a tendina (form),ovvero senza dover fare una submit della form.A questo punto non so più bene cosa fare:non conosco il javascript quindi non so cosa mettere in questa funione.Vorrei usare meno possibile javascript (non conoscendolo bene appunto...),avete qualche idea a proposito?
Grazie e scusate per la lunghezza :D

nemok
08-07-2003, 11:47
Uhm....una mezza soluzione l'avrei anche pensata ma non so se va bene...che voi sappiate è possibile da javascript impostare una variabile che possa essere vista dal codice java nella jsp?O addisrittura inserire nella session un qualcosa?

Reale_Augello
08-07-2003, 13:04
... while potresti fare un controllo banale del tipo:



while(risultato.next()) {
if (!(risultato.getString("p1").equals("Pippo")))
// il tuo codice
}


Cosa ne pensi ? :)

nemok
08-07-2003, 13:25
Si il filtraggio della lista non è difficile,a quello avevo già pensato.Il problema nasce dall'azione da impostare una volta cliccato sul filtro.Ovvero:
-ricarica questa pagina
-non eseguire la query ma usa la lista che avevi già ottenuto (messa nella session)
-filtra la lista in base a quello che è stato richiesto(ci sono diversi filtri ognuno con diverse opzioni calcolate dinamicamente...)

Il mio problema ora nasce dal fatto che non so far comunicare il codice javascript con la jsp....:(

Reale_Augello
08-07-2003, 13:33
... sinceramente non ti seguo...
Quando definisci i filtri ?
E in che modo ?

nemok
08-07-2003, 13:38
Lo so scusa, è un po' contorto da spiegare....:tongue:
I filtri (che poi sono delle form) vengono costruiti dinamicamente in base alla lista.In pratica per ogni colonna c'è un filtro,il filtro però consente di filtrare solo elementi presenti nella colonna.Esempio:

colonna1 | colonna2
pippo | 1
pluto | 2
paperino | 3
pippo | 4
pippo | 5
paperino | 1

Il filtro sulla prima colonna avrà come opzioni pippo,pluto,paperino
quello sulla seconda colonna 1,2,3,4,5

;)

Reale_Augello
08-07-2003, 13:54
... forse è la fame ( :D ), ma ancora non ho capito come fai a costruire i filtri.
Crei la query, OK ? Hai degli attributi specifici che ti vanno a delineare il filtro ? O cos'altro ?

Resto in attesa. :)

nemok
08-07-2003, 14:11
I filtri vengono creati sopo che la query viene eseguita.In pratica dal result set ottenuto dalla query creo un lista che contiene quindi tutti i record.A questo punto lavoro sulla lista in modo da creare i filtri come ho detto:scorro la lista e per ogni campo del record controllo che sia un campo conosciuto o meno.Se è nuovo lo inserisco in un'altra lista che comporrà le opzioni del filtro.
Sarà la fame in effetti ma mi sento contortissimo nelle spiegazioni...! :p

Reale_Augello
08-07-2003, 14:51
... sia meglio buttare giù un pò di codice:



while(rs.next()) {
for (i=1; i<=10; i++) // supponendo che ogni record contenga 10 campi
if (!(conosciuti.contains(rs.getString(i)))) filtri.addElement(rs.getString(i));
}


Supponendo che conosciuti sia un Vector contenente la lista degli elementi conosciuti (ancora non mi è chiaro come concetto) e filtri quella dei filtri. Alla fine di questo ciclo abbiamo un Vector (filtri, appunto) che possiamo usare a nostro piacimento.

La domanda è: cosa ci facciamo ? :D

Loading