asp.NetではDropDownListで複数項目を選択できない原因分析と解決方法

2064 ワード

サンプルコード:
 
  
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;// !
******************************

2回選択があったので、間違えました.
Page loadの場合、index 0のSelected=trueで、index 1のSelectedもtrueで、エラーを報告します.
dropDownListは使用しないでください.Items[x].Selected=true/false、dropDownListを推奨します.SelectedIndex = x.
解決策は2つあります.
(1)あるオプションを選択する際に、上の緑色コード表示方式を用いずに、下のコードを使用する
this .ddl_BulkStock.SelectedIndex = ddl_BulkStock.Items.IndexOf(ddl_BulkStock.Items.FindByValue(infobulkstockid));
(2)オプションを選択するたびにClearSelectionアクションを使用する.
this.ddl_BulkStock.ClearSelection();
今日編集ページが表示されます.DropDownListで複数の項目を選択できません.
原因をよく探してみると、
 
  


5
5-10
11-50


ページを編集してデータを再バインドするコード:
 
  
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には2つのSelected=“True”オプションがあるので、エラーです!
#dropdownlistコントロール