在ASP.NET 2.0中,可以在数据绑定时,通过设置DropDownList的AppendDataBoundItems属性为true,在数据绑定之前添加一个新的项目,并且这个新加的项目会保存在ViewState之中。下面就是一个实现的例子:
protected
void
Page_Load(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if (!IsPostBack)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//DropDownList的属性AppendDataBoundItems
//功能:指示是否在数据绑定之前清除列表
DropDownList1.AppendDataBoundItems = true;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DropDownList1.Items.Add(new ListItem("-- 请选择一个选择项 --", ""));
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DropDownList2.DataSource = DropDownList1.DataSource = CreateDataSource();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DropDownList2.DataTextField = DropDownList1.DataTextField = "text";
DropDownList2.DataValueField = DropDownList1.DataValueField = "id";
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DropDownList1.DataBind();
DropDownList2.DataBind();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
自定义数据源
ICollection CreateDataSource()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
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++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "列表项目 " + i.ToString();
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
protected
void
Button1_Click(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
Response.Write("<li>DropDownList1 您选择的项目:" + DropDownList1.SelectedValue
+ " ; " + DropDownList1.SelectedItem.Text);
Response.Write("<li>DropDownList2 您选择的项目:" + DropDownList2.SelectedValue
+ " ; " + DropDownList2.SelectedItem.Text);
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
//
也可以这样添加
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
/**/
/*
protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList1.Items.Insert(0, new ListItem("--请选择--", ""));
}*/
<
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"
/>
另外,还可以使用下面的方法添加:
protected
void
DropDownList1_DataBound(
object
sender, EventArgs e)
{
DropDownList1.Items.Insert(
0
,
new
ListItem(
"
--请选择--
"
,
""
));
}