Filtrare i dati da DataBase con 2 DropDownList
L'esempio che vedremo chiama in azione 2 Drop Down List, le quali filtrano i dati da un DataBase.
Si supponga di avere una tabella abbastanza corposa di dati e voler gradualmente mostrare i risultati a video.
L'ipotetica tabella potrebbe contenere in una colonna la nazione di appartenenza dei clienti e nell'altra
il nome della loro azienda. Se volessimo impostare una query del tipo:
"Visualizzare i clienti raggruppati per nazione ed in base a questa, elencarli tutti quanti", otterremo tante ripetizioni
del nome delle nazioni per quanti sono i clienti.
E' pur vero che si potrebbero fare 2 tabelle messe in relazione
(una per le nazioni e l'altra per il nome delle aziende) ma... vogliamo usare una sola tabella.
Il tipo di dati è facilmente intuibile; avremo:
- ID » contatore e Chiave Primaria;
- Nazione » testo
- Cliente » testo
Il primo controllo Drop Down List deve estrarre le Nazioni. Cominciamo ad importare nella
Web Form il primo controllo e lo associamo alla base di dati. Il codice è:
<asp:DropDownList
ID="DropDownListNazioni"
runat="server"
AutoPostBack="True"
DataSourceID="AccessDataSource1"
DataTextField="nazione"
DataValueField="nazione">
</asp:DropDownList>
Eseguendo la pagina nel browser dovremmo leggere, nell'elenco, il nome di tutte le nazioni. Per evitare
i "doppioni" il codice nell' AccesDataSource è il seguente:
SelectCommand="SELECT DISTINCT [nazione] FROM [NomeTabella]"
Per quanto riguarda la Drop Down List dei clienti, si importi un secondo controllo e si crei una seconda connessione.
Negli step dell' istruzione SELECT formulare la query in modo tale che a seconda della nazione
selezionata, la seconda Drop Down List mostri tutti i nomi relativi. Il codice è:
<asp:DropDownList
ID="DropDownClienti"
runat="server"
DataSourceID="AccessDataSource2"
DataTextField="cliente"
DataValueField="id">
</asp:DropDownList>
Possiamo vedere le 2 DDList in azione, qui di seguito.
Seleziona una Nazione:
Clienti Raggruppati per Nazione:
Per fare in modo che il secondo menu di selezione
appaia solo dopo aver scelto la nazione, si deve aggiungere un solo rigo di codice nella pagina:
DropDownClienti.Visible = True
Ovviamente si potrebbe continuare con altri passaggi del tipo: visualizzare i dati dell'azienda selezionata, in maniera più dettagliata.
Il procedimento rimane simile a questo descritto.