ASP.NET - Hashtable-objekt

Hashtable-objektet indeholder projekter repræsenteret ved nøgle/værdi par.

Oprette en Hashtable

Hashtable-objektet indeholder projekter repræsenteret ved nøgle/værdi par. Nøglen bruges som indeks, og værdier kan hurtigt søges ved at søge efter nøglen.

Tilføj projekter gennem Add() metoden.

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

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

Databinding

Hashtable-objektet kan automatisk generere tekst og værdier for følgende kontroller:

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

For at binde data til en RadioButtonList-kontrol skal du først oprette en RadioButtonList-kontrol i en .aspx-side (uden nogen asp:ListItem-elementer)

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

Tilføj derefter skriptet til at opbygge listen:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  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>

Så tilføjer vi en underprocedur, der udføres, når brugeren klikker på et element i RadioButtonList-kontrollen. Når en af de enkelte radio knapper klikkes, vises en tekst i label'en:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  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 denne eksempel

Bemærk:Du kan ikke vælge sorteringsmetoden for de elementer, du vil tilføje til Hashtable. Hvis du vil sortere elementerne alfabetisk eller numerisk, skal du bruge SortedList-objektet.