2010-09-02 78 views
0

在我的web應用程序中,當我選擇一個下拉控件,這是給錯誤的。 不能在DropDownList中選擇多個項目。這是我的代碼...在下拉控件selectedindexchanged事件中獲取錯誤?

try 
    {    
     ddlState.Items.Clear(); 
     ddlState.Enabled = true; 
     ListItem li1 = new ListItem(); 
     li1.Value = "0"; 
     li1.Text = "Select State"; 
     ddlState.Items.Add(li1); 
     clsStates.Countryid = int.Parse(ddlCountry.SelectedValue.ToString()); 
     DataSet ds = clsStates.selectStateBl(); 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 
      li1 = new ListItem(); 
      li1.Text = ds.Tables[0].Rows[i]["statename"].ToString(); 
      li1.Value = ds.Tables[0].Rows[i]["stateid"].ToString(); 
      ddlState.DataTextField = "statename"; 
      ddlState.DataValueField = "stateid"; 
      ddlState.Items.Add(li1); 
     } 
    } 
    catch 
    { 

    } 

這是有約束力的國家代碼...

 try 
    { 

     ListItem li = new ListItem(); 

     DataSet ds = clsCountrys.selectCountryB(); 

     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 
      li = new ListItem(); 
      li.Text = ds.Tables[0].Rows[i]["countryname"].ToString(); 
      li.Value = ds.Tables[0].Rows[i]["countryid"].ToString(); 
      if (li.Value == Session["usercountry"].ToString()) 
       li.Selected = true; 
      ddlCountry.DataTextField = "countryname"; 
      ddlCountry.DataValueField = "countryid"; 
      ddlCountry.Items.Add(li); 
     } 
    } 
    catch 
    { 

    } 

,這是國家結合到下拉控制..

 try 
    { 
     ddlState.Items.Clear(); 
     ddlState.Enabled = true; 
     ddlState.ClearSelection(); 
     ListItem li1 = new ListItem(); 
     li1.Value = "0"; 
     li1.Text = "Select State"; 
     ddlState.Items.Add(li1); 
     clsStates.Countryid = int.Parse(ddlCountry.SelectedValue.ToString()); 
     DataSet ds = clsStates.selectStateBl(); 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 

      li1 = new ListItem(); 
      li1.Text = ds.Tables[0].Rows[i]["statename"].ToString(); 
      li1.Value = ds.Tables[0].Rows[i]["stateid"].ToString(); 
      if (Session["userstate"].ToString() == li1.Value) 
       li1.Selected = true; 
      ddlState.DataTextField = "statename"; 
      ddlState.DataValueField = "stateid"; 
      ddlState.Items.Add(li1); 
     } 
    } 
    catch 
    { 

    } 
+0

檢查編輯答案會做工作,爲您 – 2010-09-02 09:10:47

+0

檢查的代碼//代碼由pranay林蛙 – 2010-09-02 09:11:26

+0

沒有pranay我的地方更新此塊代碼,但它給出了相同的錯誤 – 2010-09-02 09:52:19

回答

1

利用ddlState.ClearSelection()方法來清除默認選擇。

檢查這個帖子:ASP.NET Tips: DropDownList.ClearSelection() to avoid "Cannot have multiple items selected in DropDownList"

編輯

try 
    { 
     ddlState.ClearSelection(); 
     ddlState.Items.Clear(); 
     ddlState.Enabled = true; 

     ListItem li1 = new ListItem(); 
     li1.Value = "0"; 
     li1.Text = "Select State"; 
     ddlState.Items.Add(li1); 
     clsStates.Countryid = int.Parse(ddlCountry.SelectedValue.ToString()); 
     DataSet ds = clsStates.selectStateBl(); 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 

      li1 = new ListItem(); 
      li1.Text = ds.Tables[0].Rows[i]["statename"].ToString(); 
      li1.Value = ds.Tables[0].Rows[i]["stateid"].ToString(); 

      ddlState.DataTextField = "statename"; 
      ddlState.DataValueField = "stateid"; 
      ddlState.Items.Add(li1); 

     } 

      //code updated by pranay rana 
      ddlState.ClearSelection(); 
       ListItem li = ddlState.Items.FindByValue(Session["userstate"].ToString()); 
       if (li != null) 
       { 
        li.Selected = true; 
       } 
      //code updated by pranay rana 
    } 
    catch 
    { 

    } 
+0

@pranay Rana我寫的代碼在事件,但它不起作用 – 2010-09-02 08:42:55

+0

@Surya sasidhar: - 只需在函數中寫下你綁定值到dropdownlist,即綁定數據後 – 2010-09-02 08:49:37

+0

@prany Rana其實我有2個下拉按鈕一個綁定countryies,當我在一個下拉列表中選擇國家我綁定該國的國家我有兩個下拉控件。 – 2010-09-02 08:57:48

相關問題