ASP.NET - SortedList-objektet

SortedList-objektet har egenskaberne ved både ArrayList- og Hashtable-objekter.

SortedList-objektet

SortedList-objektet indeholder projekter repræsenteret ved nøgle/værdipar. SortedList-objektet kan automatisk sortere projekterne efter tegnordning eller numerisk ordning.

Tilføj elementer til SortedList ved hjælp af Add()-metoden. SortedList kan justeres til den endelige størrelse ved hjælp af TrimToSize()-metoden.

Følgende kode opretter en SortedList ved navn mycountries og tilføjer fire elementer:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New SortedList
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
end if
end sub
</script>

Databinding

SortedList-objektet kan automatisk generere tekst og værdier for de nedenstående kontroller:

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

Hvis du vil binde data til RadioButtonList-kontrollen, skal du først oprette en RadioButtonList-kontrol i aspx-filen (uden nogen asp:ListItem-elementer):

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

Dernæst tilføj skriptet til at opbygge listen:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New SortedList
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Dernæst tilføjer vi en underprocedur, som vil blive udført, når brugeren klikker på et element i RadioButtonList-kontrollen. Når en afkrydsningsfeltet klikkes på, vises teksten i label'en: }}

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New SortedList
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
end if
end sub
sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Your favorite country is: " & rb.SelectedItem.Text
end 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>

Vis dette eksempel