Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [JSP] Filtro tabella

  1. #1

    [JSP] Filtro tabella

    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
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  2. #2
    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?
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  3. #3
    Reale_Augello
    Guest

    Nel...

    ... while potresti fare un controllo banale del tipo:

    codice:
    while(risultato.next()) {
     if (!(risultato.getString("p1").equals("Pippo")))
     // il tuo codice
    }
    Cosa ne pensi ?

  4. #4
    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....
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  5. #5
    Reale_Augello
    Guest

    Ehm...

    ... sinceramente non ti seguo...
    Quando definisci i filtri ?
    E in che modo ?

  6. #6
    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

    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  7. #7
    Reale_Augello
    Guest

    Perdonami...

    ... forse è la fame ( ), 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.

  8. #8
    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...!
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  9. #9
    Reale_Augello
    Guest

    Credo...

    ... sia meglio buttare giù un pò di codice:

    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 ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.