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


另外,还可以使用下面的方法添加: