ASP.NET - Hashtable-object

Het Hashtable-object bevat items weergegeven als sleutel/waardeparen.

Hashtable aanmaken

Het Hashtable-object bevat items weergegeven als sleutel/waardeparen. De sleutel wordt gebruikt als index, zodat de waarde snel kan worden opgehaald door de sleutel te zoeken.

Itemen worden toegevoegd aan de Hashtable via de Add() methode.

Hieronder wordt een Hashtable genaamd mycountries gecreëerd en worden vier elementen toegevoegd:

<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>

Gegevenskoppeling

Het Hashtable-object kan automatisch tekst en waarden genereren voor de volgende knoppen:

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

Om gegevens te koppelen aan een RadioButtonList-knop, maak dan eerst een RadioButtonList-knop aan in een .aspx-pagina (zonder enige asp:ListItem-elementen):

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

Voeg vervolgens het script toe om de lijst te bouwen:

<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>

Vervolgens voegen we een subsysteem toe, dat wordt uitgevoerd wanneer de gebruiker op een item in de RadioButtonList-knop klikt. Wanneer een van de keuzevelden wordt aangeklikt, verschijnt er een tekst in de label:

<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>

Toon dit voorbeeld

Opmerking:U kunt de sorteermethode voor de items die u wilt toevoegen aan de Hashtable niet kiezen. Gebruik de SortedList-object om de items alfabetisch of numeriek te sorteren.