在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 ="得到选择的值" OnClick ="Button1_Click" />
</ 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 ="得到选择的值" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >
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 ="得到选择的值" OnClick ="Button1_Click" />
</ 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 ="得到选择的值" OnClick ="Button1_Click" />
</ form >
</ body >
</ html >
另外,还可以使用下面的方法添加:
protected
void
DropDownList1_DataBound(
object
sender, EventArgs e)
{
DropDownList1.Items.Insert( 0 , new ListItem( " --请选择-- " , "" ));
}
{
DropDownList1.Items.Insert( 0 , new ListItem( " --请选择-- " , "" ));
}