Popolare DropDown List a cascata

lunedì 17 novembre 2008 - 15.15

Leonida Profilo | Junior Member

Ciao a tutti,

Sto scrivendo un form con 4 DropDownList che consentono di selezionare rispettivamente: Nazione, Regione, Provincia, Comune. Il DDLNazioni, carica l'elenco di nazioni da DataBase tramite il tag SqlDataSource, gli altri si popolano (da database) in funzione del valore selezionato nella precedente DDL.

Quello che voglio fare è fare in modo che le DDL si popolino automaticamente in funzione del primo valore caricato nella DDL precedente. In altri termini dovrebbero popolarsi secondo uno schema Nazione->Regione->Provincia->Comune , per esempio:

1. Seleziono Italia, si popola il DDL delle regioni con le regioni italiane con in testa la Campania
2. Il DDL delle province si popola con le province della regione Campania con in testa Napoli
3. Il DDL dei comuni si popola con i comuni di Napoli

I linguaggi usati sono ASP.NET e C#. Premetto che sto sviluppando con .NET da meno di 15 giorni.

0v3rCl0ck Profilo | Guru

>Ciao a tutti,

Ciao

>
>Sto scrivendo un form con 4 DropDownList che consentono di selezionare
>rispettivamente: Nazione, Regione, Provincia, Comune. Il DDLNazioni,
>carica l'elenco di nazioni da DataBase tramite il tag SqlDataSource,
>gli altri si popolano (da database) in funzione del valore selezionato
>nella precedente DDL.
>
>Quello che voglio fare è fare in modo che le DDL si popolino
>automaticamente in funzione del primo valore caricato nella DDL
>precedente. In altri termini dovrebbero popolarsi secondo uno
>schema Nazione->Regione->Provincia->Comune , per esempio:
>
>1. Seleziono Italia, si popola il DDL delle regioni con le regioni
>italiane con in testa la Campania
>2. Il DDL delle province si popola con le province della regione
>Campania con in testa Napoli
>3. Il DDL dei comuni si popola con i comuni di Napoli
>
>I linguaggi usati sono ASP.NET e C#. Premetto che sto sviluppando
>con .NET da meno di 15 giorni.

Ti preparo un esempietto e te lo posto


- Michael -
http://blogs.dotnethell.it/Regulator/

amdbook Profilo | Junior Member

Prima di tutto dovresti impostare la proprietà AutoPostBack dei controlli DropDown su true, in questo modo quando l'utente sceglie una voce del DropDownList viene eseguito (lato server) l'evento SelectedIndexChanged, che puoi sfruttare per popolare il successivo DropDownList
Pietro Libro

Blog: http://blogs.ugidotnet.org/PietroLibroBlog/

Leonida Profilo | Junior Member

Grazie...

0v3rCl0ck Profilo | Guru

Eccoti un esempio fatto con il SqlDataSource e "l'autobinding":

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

E' solo con 2 ddl, però ne puoi mettere quante ne vuoi. In questo esempio, nella prima combo vengono messi i top 10 degli utenti che si hanno nel db, con anche aggiunto un record vuoto in alto. Quando si seleziona dalla prima lista un utente, la seconda viene popolata con il secondo datasource, che utilizzerà il SelectedValue della prima ddl per eseguire il filtro. In questo esempio la seconda lista ritornerebbe sempre solo un elemento perchè faccio il filtro per IdUtente, ma è solo un esempio per farti vedere come potrai fare.

Enjoy It
- Michael -
http://blogs.dotnethell.it/Regulator/

Leonida Profilo | Junior Member

>Prima di tutto dovresti impostare la proprietà AutoPostBack dei controlli DropDown su true, in questo modo quando l'utente sceglie una voce del >DropDownList viene eseguito (lato server) l'evento SelectedIndexChanged, che puoi sfruttare per popolare il successivo DropDownList
>Pietro Libro

Mmmh, si AutoPostBack l'ho impostato su true...ora provo a giocare con l'evento SelectedIndexChanged e ti faccio sapere...

Leonida Profilo | Junior Member

Grazie, fatto e funziona anche per 3 drop...

0v3rCl0ck Profilo | Guru

>Grazie, fatto e funziona anche per 3 drop...

Bene, bravo!

Alla prossima...
Ciao

- Michael -
http://blogs.dotnethell.it/Regulator/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5