ASP.NET 2.0中给DropDownList服务器控件添加项的新方法

80酷酷网    80kuku.com

  asp.net|服务器|控件

介绍ASP.NET 2.0的新特性。是《ASP.NET2.0应用开发技术》一书的延续。

 

在ASP.NET 2.0中,可以在数据绑定时,通过设置DropDownList的AppendDataBoundItems属性为true,在数据绑定之前添加一个新的项目,并且这个新加的项目会保存在ViewState之中。下面就是一个实现的例子:

C#代码

<%... Page Language="C#" %>
<%... Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">...
  ICollection CreateDataSource()
  ...{
    DataTable dt = new DataTable();
    DataRow dr;
    dt.Columns.Add(new DataColumn("id", typeof(Int32)));
    dt.Columns.Add(new DataColumn("text", typeof(string)));
    for (int i = 0; i < 6; i++)
    ...{
      dr = dt.NewRow();
      dr[0] = i;
      dr[1] = "列表项目 " + i.ToString();
      dt.Rows.Add(dr);
    }
    DataView dv = new DataView(dt);
    return dv;
  }
  protected void Button1_Click(object sender, EventArgs e)
  ...{
    Response.Write("<li>DropDownList1 您选择的项目:" + DropDownList1.SelectedValue
      + " ; " + DropDownList1.SelectedItem.Text);
    Response.Write("<li>DropDownList2 您选择的项目:" + DropDownList2.SelectedValue
      + " ; " + DropDownList2.SelectedItem.Text);
  }

  protected void Page_Load(object sender, EventArgs e)
  ...{
    if (!IsPostBack)
    ...{
      DropDownList1.AppendDataBoundItems = true;
      DropDownList1.Items.Add(new ListItem("-- 请选择一个选择项 --", ""));
      DropDownList2.DataSource = DropDownList1.DataSource = CreateDataSource();
      DropDownList2.DataTextField = DropDownList1.DataTextField = "text";
      DropDownList2.DataValueField = DropDownList1.DataValueField = "id";
      DropDownList1.DataBind();
      DropDownList2.DataBind();
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DropDownList 补充例子</title>
</head>
<body>
<form id="form1" runat="server">
  <asp:DropDownList ID="DropDownList1" runat="server">
  </asp:DropDownList>
  <asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="true">
  <asp:ListItem Text="请选择" Value=""></asp:ListItem>
  </asp:DropDownList>
  <asp:Button ID="Button1" runat="server" Text="得到选择的值" />
</form>
</body>
</html>

VB.NET代码

<%... Page Language="VB" AutoEventWireup="true" %>

<%... Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">...
  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Response.Write("<li>DropDownList1 您选择的项目:" + DropDownList1.SelectedValue + _
      " ; " + DropDownList1.SelectedItem.Text)
    Response.Write("<li>DropDownList2 您选择的项目:" + DropDownList2.SelectedValue + _
      " ; " + DropDownList2.SelectedItem.Text)
  End Sub
 
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    If Not IsPostBack Then
      DropDownList1.AppendDataBoundItems = True
      DropDownList1.Items.Add(New ListItem("-- 请选择一个选择项 --", ""))
      DropDownList2.DataSource = CreateDataSource()
      DropDownList1.DataSource = CreateDataSource()
      DropDownList2.DataTextField = "text"
      DropDownList1.DataTextField = "text"
      DropDownList2.DataValueField = "id"
      DropDownList1.DataValueField = "id"
      DropDownList1.DataBind()
      DropDownList2.DataBind()
    End If
  End Sub
 
  Function CreateDataSource() As ICollection
    Dim dt As DataTable = New DataTable()
    Dim dr As DataRow
    dt.Columns.Add(New DataColumn("id", GetType(System.Int32)))
    dt.Columns.Add(New DataColumn("text", GetType(String)))
    For i As Integer = 0 To 6
      dr = dt.NewRow()
      dr(0) = i
      dr(1) = "列表项目 " + i.ToString()
      dt.Rows.Add(dr)
    Next
    Dim dv As DataView = New DataView(dt)
    Return dv
  End Function

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>DropDownList 补充例子</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server">
    </asp:DropDownList>
    <asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="true">
      <asp:ListItem Text="请选择" Value=""></asp:ListItem>
    </asp:DropDownList>
    <asp:Button ID="Button1" runat="server" Text="得到选择的值" />
  </form>
</body>
</html>


 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: