ASP.NET - Oggetto SortedList

L'oggetto SortedList combina le caratteristiche degli oggetti ArrayList e Hashtable.

Oggetto SortedList

L'oggetto SortedList contiene elementi rappresentati da coppie di chiave/valore. L'oggetto SortedList può ordinare automaticamente gli elementi in ordine alfabetico o numerico.

Aggiungi elementi all'oggetto SortedList tramite il metodo Add(). L'oggetto SortedList può essere ridimensionato finalmente con il metodo TrimToSize().

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

<script runat="server">
procedura Page_Load
se Non Page.IsPostBack allora
  dim mycountries=New SortedList
  mycountries.Add("C","Cina")
  mycountries.Add("S","Svezia")
  mycountries.Add("F","Francia")
  mycountries.Add("I","Italia")
fine se
fine procedura
</script>

Binding dei dati

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

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

Per bindare i dati al controllo RadioButtonList, prima crea un controllo RadioButtonList nell'archivio aspx (senza alcun elemento asp:ListItem):

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

Poi aggiungere lo script per costruire l'elenco:

<script runat="server">
procedura Page_Load
se Non Page.IsPostBack allora
  dim mycountries=New SortedList
  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 se
fine procedura
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Poi aggiungiamo una subroutine che verrà eseguita quando l'utente clicca su un elemento del controllo RadioButtonList. Quando viene cliccata una casella di riepilogo, il testo apparirà nel label:}}

<script runat="server">
procedura Page_Load
se Non Page.IsPostBack allora
  dim mycountries=New SortedList
  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 se
fine procedura
procedura displayMessage(s come Oggetto, e come EventArgs)
lbl1.text="La tua nazione preferita è: " & rb.SelectedItem.Text
fine procedura
</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