Questo semplice script mostra l'utilità della funzione addElemento per aggiungere alle DropDownList un elemento standard quando il riempimento dell'oggetto viene effettuato direttamente da un database.
Questa funzionalità è molto utile quando abbiamo bisogno di un valore neutro: nell'esempio riportato la lista fa selezionare un indirizzo web presso cui eseguire un'ipotetica ricerca, con la possibilità di poter effettuare la ricerca fra tutti quelli elencati.
Il vantaggio di questa opzione deriva dal fatto che il controllo sulla selezione viene effettuato sul valore "0" e non sui vari Nothing, DBnull o "" che sono sicuramente più difficili da gestire.
<%@ page language="vb" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.oleDB" %> <SCRIPT RUNAT="Server"> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) If Not IsPostBack Then Dim myConnection As New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\lista.mdb") Dim Adapt as new OledbDataAdapter("SELECT id, lista FROM Liste", myConnection) 'riempio il dataset Dim Ds As DataSet = new DataSet() Adapt.Fill(Ds, "Liste") ' Associazione di un dataset ad una DropDownList ' Chiamata alla funzione addElemento Lista.DataSource = addElemento(ds, "lista") Lista.SelectedValue = 0 Lista.DataValueField = "id" Lista.DataTextField = "lista" Lista.DataBind() ds.clear myConnection.Close() End If End Sub Private Function addElemento(ds As dataset, ordina As String) ' aggiungo un valore qualsiasi nei dati recuperati dal database utilizzando un Datatable ed un Datarow Dim dt As datatable dt = ds.Tables(0) Dim newRow As DataRow = dt.NewRow() ' creo valore(0) e testo visualizzato(1) newRow(0) = 0 ' importante lo spazio all'inizio per apparire al primo posto newRow(1) = " tutti " dt.Rows.Add(newRow) ' riordino la tabella con un Dataview attraverso il parametro "ordina" Dim dv As dataview = ds.Tables(0).DefaultView dv.sort = ordina return dv End Function </SCRIPT>
Nella pagina basterà aggiungere un normale controllo dropdownlist:
<asp:dropdownlist id="Lista" Runat="server" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.