博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
不能在 DropDownList 中选择多个项
原因分析:
在前一步操作的过程中,已经选择了某个Item。
示例代码:
BulkStockBll bll = new BulkStockBll();
DataSet ds = bll.GetBulkStock();
 this.ddl_BulkStock.DataTextField = "Name" ;
 this.ddl_BulkStock.DataValueField = "ID" ;
 this.ddl_BulkStock.DataSource = ds;
 this.ddl_BulkStock.DataBind();
 this.ddl_BulkStock.Items.Add(new ListItem( "全部", "0" ));//第一次选择!
this.ddl_BulkStock.Items.FindByValue("0" ).Selected = true;
*******************************
this.ddl_BulkStock.Items.FindByValue(infobulkstockid).Selected = true;//第二次选择!
******************************
出现了两次选择,所以报错。
page load的时候,index0的Selected = true,你再选一个index1的Selected 也true了,就报错。
不要用dropDownList.Items[x].Selected = true/false,推荐用dropDownList.SelectedIndex = x。
解决方法有两个:
(1)在选择某个选项时,不用上面的绿色代码显示方式,使用下面的代码  
this .ddl_BulkStock.SelectedIndex = ddl_BulkStock.Items.IndexOf(ddl_BulkStock.Items.FindByValue(infobulkstockid));
(2)在每次选择某个选项前,使用ClearSelection操作。
this.ddl_BulkStock.ClearSelection();