程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net中不能在DropDownList中選擇多個項 原因分析及解決方法

asp.net中不能在DropDownList中選擇多個項 原因分析及解決方法

編輯:ASP.NET基礎
示例代碼:
復制代碼 代碼如下:
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控件
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved