开发学院

您的位置:首页>教程>正文

教程正文

ASP.NET - Hashtable 对象

ASP.NET - Hashtable 对象

    Hashtable 对象包含用键/值对表示的项目。

    创建 Hashtable

    Hashtable 对象包含用键/值对表示的项目。键被用作索引,通过搜索其键,可以实现对值的快速搜索。

    通过 Add() 方法向 Hashtable 添加项目。

    下面的代码创建一个名为 mycountries 的 Hashtable,并添加了四个元素:

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

    数据绑定

    Hashtable 对象可为下面这些控件自动地生成文本和值:

    • asp:RadioButtonList

    • asp:CheckBoxList

    • asp:DropDownList

    • asp:Listbox

    如需把数据绑定到某个 RadioButtonList 控件,首先请在一个 .htmlx 页面中创建 RadioButtonList 控件(没有任何 asp:ListItem 元素)

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

    然后添加构建列表的脚本:

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

    然后我们添加一个子例程,该例程会在用户点击 RadioButtonList 控件中的某个项目时被执行。当某个单选按钮被点击,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 subsub 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>


    注释:您无法选择添加到 Hashtable 的项目的排序方式。如需对项目进行字母排序或数字排序,请使用 SortedList 对象。