asp.net中不能在DropDownList中选择多个项 原因分析及解决方法
2012-10-12 00:11
881 查看
示例代码:
复制代码 代码如下:
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();
今天在编辑页面出现:不能在 DropDownList 中选择多个项。
仔细的找了原因发现:
复制代码 代码如下:
<asp:DropDownList ID="Com_Ygrenshu" runat="server" style="margin-left:8px;">
<asp:ListItem Value="0">请选择人数</asp:ListItem>
<asp:ListItem Selected="True" Value="5">5人以下</asp:ListItem>
<asp:ListItem Value="10">5-10 人</asp:ListItem>
<asp:ListItem Value="50">11-50 人</asp:ListItem>
</asp:DropDownList>
我在编辑页面进行重新绑定数据的代码:
复制代码 代码如下:
for (int i = 0; i < this.Com_Ygrenshu.Items.Count; i++)
{
Com_Ygrenshu.Items[i].Selected = false;
//如果没有上面这一句那么将出错误:不能在 DropDownList 中选择多个项
if (Com_Ygrenshu.Items[i].Value.Trim() == ds.Tables[0].Rows[0]["Empl_Num"].ToString().Trim())
{
Com_Ygrenshu.Items[i].Selected = true;
}
}
原因是:你的DropDownList有两个Selected="True" 选项,所以出错!
#dropdownlist控件
复制代码 代码如下:
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();
今天在编辑页面出现:不能在 DropDownList 中选择多个项。
仔细的找了原因发现:
复制代码 代码如下:
<asp:DropDownList ID="Com_Ygrenshu" runat="server" style="margin-left:8px;">
<asp:ListItem Value="0">请选择人数</asp:ListItem>
<asp:ListItem Selected="True" Value="5">5人以下</asp:ListItem>
<asp:ListItem Value="10">5-10 人</asp:ListItem>
<asp:ListItem Value="50">11-50 人</asp:ListItem>
</asp:DropDownList>
我在编辑页面进行重新绑定数据的代码:
复制代码 代码如下:
for (int i = 0; i < this.Com_Ygrenshu.Items.Count; i++)
{
Com_Ygrenshu.Items[i].Selected = false;
//如果没有上面这一句那么将出错误:不能在 DropDownList 中选择多个项
if (Com_Ygrenshu.Items[i].Value.Trim() == ds.Tables[0].Rows[0]["Empl_Num"].ToString().Trim())
{
Com_Ygrenshu.Items[i].Selected = true;
}
}
原因是:你的DropDownList有两个Selected="True" 选项,所以出错!
#dropdownlist控件
您可能感兴趣的文章:
相关文章推荐
- asp.net中不能在DropDownList中选择多个项 原因分析及解决方法
- asp.net LC.exe已退出代码为 -1的原因分析及解决方法
- asp.net LC.exe已退出代码为 -1的原因分析及解决方法
- 发布到SPS站点下的ASP.NET页面上的中文不能正常显示__问题解决方法
- asp.net 2.0不能切换到Desgine模式的解决方法
- ASP.NET "正在中止线程"错误原因及解决方法【转】
- asp.net mvc 下拉并且不能选择默认值的原因
- asp.net updatepanel 导致JS不能加载,而无法使用的解决方法
- asp.net 不能在 DropDownList 中选择多个项。
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
- Asp.net中TextBox的自动完成不能触发textchanged解决方法
- 解决IE8下ASP.NET不能调试的方法
- Asp.net-不能在DropDownList中选择多个项
- ORACLE EXP不能导出空表的原因分析及解决方法
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- asp.net中url字符串编码乱码的原因与解决方法
- ORACLE EXP不能导出空表的原因分析及解决方法
- 关于在vs2005中不能正常编写或调试web应用程序的解决方法(提示当前不是asp.net 2.0)
- asp.net apk文件不能直接下载的解决方法
- iis不能支持asp,asp.net解决方法