ASP.NET Hashtable

From http://www.w3schools.com (Copyright Refsnes Data)

# ASP.NET - The Hashtable Object

The Hashtable object contains items in key/value pairs.

## Examples

Example 1 - Hashtable RadioButtonList

Example 2 - Hashtable RadiobuttonList

Example 3 - Hashtable DropDownList

## Create a Hashtable

The Hashtable object contains items in key/value pairs. The keys are used as indexes, and very quick searches can be made for values by searching through their keys.

Items are added to the Hashtable with the Add() method.

The following code creates a Hashtable named mycountries and four elements are added:

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

## Data Binding

A Hashtable object may automatically generate the text and values to the following controls:

- asp:RadioButtonList
- asp:CheckBoxList
- asp:DropDownList
- asp:Listbox

To bind data to a RadioButtonList control, first create a RadioButtonList control (without any asp:ListItem elements) in an .aspx page:

    <html>
    <body>

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

    </body>
    </html>

Then add the script that builds the list:

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

Then we add a sub routine to be executed when the user clicks on an item in the RadioButtonList control. When a radio button is clicked, a text will appear in a label:

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

Note: You cannot choose the sort order of the items added to the Hashtable. To sort items alphabetically or numerically, use the SortedList object.

From http://www.w3schools.com (Copyright Refsnes Data)