ASP.NET - Oggetto Hashtable

L'oggetto Hashtable contiene elementi rappresentati da coppie di chiave/valore.

Creazione di Hashtable

L'oggetto Hashtable contiene elementi rappresentati da coppie di chiave/valore. La chiave viene utilizzata come indice, e attraverso la ricerca della chiave, è possibile effettuare una ricerca veloce sui valori.

Aggiungi elementi all'Hashtable tramite il metodo Add().

Il codice seguente crea un oggetto Hashtable chiamato mycountries e aggiunge quattro elementi:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","Cina")
  mycountries.Add("S","Svezia")
  mycountries.Add("F","Francia")
  mycountries.Add("I","Italia")
fine if
fine sub
</script>

Binding dei dati

L'oggetto Hashtable può generare automaticamente testo e valore per i seguenti controlli:

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

Per vincolare i dati a un controllo RadioButtonList, prima di tutto crea un controllo RadioButtonList in una pagina .aspx (senza alcun elemento asp:ListItem)

<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Poi aggiungiamo lo script per costruire l'elenco:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","Cina")
  mycountries.Add("S","Svezia")
  mycountries.Add("F","Francia")
  mycountries.Add("I","Italia")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
fine if
fine sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Poi aggiungiamo una subroutine, che viene eseguita quando l'utente clicca su un elemento di un controllo RadioButtonList. Quando un pulsante radio viene cliccato, una stringa di testo appare nel label:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","Cina")
  mycountries.Add("S","Svezia")
  mycountries.Add("F","Francia")
  mycountries.Add("I","Italia")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
fine if
fine sub
sub displayMessage(s as Object,e As EventArgs)
lbl1.text="La tua nazione preferita è: " & rb.SelectedItem.Text
fine sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form>
</body>
</html>

Mostra questo esempio

Nota:Non è possibile selezionare il metodo di ordinamento dei progetti da aggiungere a Hashtable. Per ordinare i progetti in ordine alfabetico o numerico, utilizzare l'oggetto SortedList.