Originariamente inviato da riccardo_ge
Per capire come posso associare ad un controllo DropDownList dei valori sono partito per gradi.
Ho composto una matrice semplice con l'elenco dei valori.
Prima di arrivare a collegare la lista ad un recordset, volevo creare una matrice con due dimensioni, dove identificabo il valore e il testo della mia opzione.
Non avevo mai provato a collegare un vettore bidimensionale ad un ListBox. Come funzionerà?
E' banale: basta provare e vedere i risultati. Il DataBind() ha un funzionamento interessante, e sbagliato.
Infatti, se creo un vettore bidimensionale:
Dim v$(,) = {{"1", "2"}, {"3", "4"}}
e lo associo al listbox con:
Me.ListBox1.DataSource = v
il DataBind
Me.ListBox1.DataBind()
produrrà:
codice:
<select name="ListBox1" size="4" id="ListBox1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
Che non è quello che volevo. Adesso capisco perchè in letteratura non ci sono esempi simili.
Si può però utilizzare un Hashtable per esempio:
codice:
'creo un HashTable di valori
Dim tabValues As New Hashtable(5)
tabValues.Add("Microsoft", 49.56)
tabValues.Add("Sun", 28.33)
tabValues.Add("IBM", 55)
tabValues.Add("Compaq", 20.74)
tabValues.Add("Oracle", 41.1)
'imposto il datasource dei controlli
Me.ListBox1.DataSource = tabValues
Me.ListBox1.DataTextField = "key"
Me.ListBox1.DataValueField = "value"
Me.DropDownList1.DataSource = tabValues
Me.DropDownList1.DataTextField = "key"
Me.DropDownList1.DataValueField = "value"
Me.DataGrid1.DataSource = tabValues
Me.Repeater1.DataSource = tabValues
Me.DataList1.DataSource = tabValues
Me.CheckBoxList1.DataSource = tabValues
Me.CheckBoxList1.DataValueField = "value"
Me.CheckBoxList1.DataTextField = "key"
Me.RadioButtonList1.DataSource = tabValues
Me.RadioButtonList1.DataValueField = "value"
Me.RadioButtonList1.DataTextField = "key"
'associo i dati
Me.DataBind()
dove ho utilizzato un DropDownList, un DataGrid, un CheckBoxList, un RadioButtonList.
Allora, esempi ce ne sono tanti, utilizzati, mai.
Ciao