2014-04-25 136 views
0

我在一個updatepanel中放置了2個Dropdownlist。每當第一個dropdownlist選擇的索引改變第二個dropdownlist的項目改變時(比如Country-State ..在我的案例中就是它的城市區域)。UpdatePanel內的Dropdownlist不能正常工作

每當我改變第一dropdownlist(DDLCity1)selectedindex沒有問題,它工作正常。但只有兩次。 假設頁面加載後我選擇「LA」沒有問題,LA的區域將加載到另一個下拉列表DDLArea1中。然後我做了改變,選擇「紐約」城市,再次dropdownlist將正常工作。

但現在在這裏嘗試我的第二個DROPDOWNLIST SHOW沒有任何變化!!!!!它仍然顯示最後的結果。

IN SORT,回發作品只有2次。

進行測試我把一個警報味精放在下拉菜單的彈出式菜單中,只彈出兩次。好像回傳只有2次:((plzz幫助我;

<pre> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ViewStateMode="Enabled" UpdateMode="Always"> 
           <ContentTemplate> 
            <asp:DropDownList ID="DDLCity1" runat="server" AutoPostBack="false" OnSelectedIndexChanged="DDLCity_SelectedIndexChanged" 
             ViewStateMode="Enabled"> 
             <asp:ListItem Text="- All City -" /> 
            </asp:DropDownList> 
            <asp:DropDownList ID="DDLArea1" runat="server" Style="margin-bottom: 0px" OnSelectedIndexChanged="DDLArea_SelectedIndexChanged" 
             AutoPostBack="false" ViewStateMode="Enabled"> 
             <asp:ListItem Text="- Anywhere -" /> 
            </asp:DropDownList> 
            <span style="position: absolute;"> 
             <asp:UpdateProgress ID="UpdateProgress1" runat="server"> 
              <ProgressTemplate> 
               <img src="img/loading.gif" alt="Alternate Text" /> 
              </ProgressTemplate> 
             </asp:UpdateProgress> 
            </span> 


           </ContentTemplate> 
           <Triggers> 
            <asp:AsyncPostBackTrigger ControlID="DDLCity1" EventName="SelectedIndexChanged" /> 
           </Triggers> 
           <Triggers> 
            <asp:AsyncPostBackTrigger ControlID="DDLArea1" EventName="SelectedIndexChanged" /> 
           </Triggers> 
          </asp:UpdatePanel> 

<code> 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (!Page.IsPostBack) 
{ 
     DDLCity1.DataSource = objsql.GetTable("select distinct city from tblCity where status=1 order by city"); 
     DDLCity1.DataTextField = "city"; 
     DDLCity1.DataValueField = "city"; 
     DDLCity1.DataBind(); 
     DDLCity1.Items.Insert(0, new ListItem("- All India -", "- All India -")); 
     if (Request.Cookies["ddCityCookie"] != null) 
     { 
      ddlCity.SelectedIndex = int.Parse(Request.Cookies["ddCityCookie"].Value); 

      if (Request.Cookies["ddAreaCookie"] != null) 
      { 
       ddlArea.SelectedIndex = int.Parse(Request.Cookies["ddAreaCookie"].Value); 
      } 
     } 
} 
protected void DDLCity_SelectedIndexChanged(object sender, EventArgs e) 
{ 


    DropDownCityIndexChange(); 

    DDLArea1.SelectedIndex = 0; 

} 
protected void DDLArea_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    HttpCookie ddAreaCookie = new HttpCookie("ddAreaCookie"); 
    ddAreaCookie.Value = DDLArea1.SelectedIndex.ToString(); 
    ddAreaCookie.Expires = DateTime.Now.AddYears(1); 
    Response.Cookies.Add(ddAreaCookie); 
} 
public void DropDownCityIndexChange() 
{ 
    DDLArea1.Items.Clear(); 

    DDLArea1.DataSource = null; 

    HttpCookie ddCityCookie = new HttpCookie("ddCityCookie"); 
    ddCityCookie.Value = DDLCity1.SelectedIndex.ToString(); 
    ddCityCookie.Expires = DateTime.Now.AddYears(1); 
    Response.Cookies.Add(ddCityCookie); 


    DataSet ds = new DataSet(); 

    if (DDLCity1.SelectedItem.Text != "- All India -") 
    { 
     DataTable dt = new DataTable(); 
     dt = objsql.GetTable("select area from tblCity where city='" + DDLCity1.SelectedItem.Text + "' and status=1 order by area"); 
     if (dt.Rows[0]["area"].ToString() != null && dt.Rows[0]["area"].ToString() != "") 
     { 
      DDLArea1.DataSource = dt; 
      DDLArea1.DataTextField = "area"; 
      DDLArea1.DataValueField = "area"; 
      DDLArea1.DataBind(); 
     } 


    } 

    DDLArea1.Items.Insert(0, new ListItem("- Anywhere -", "- Anywhere -")); 

} 
</code> 
+0

與此在DROPDOWN自動回是 「真」 ..是我TYPING MISTAKE .. –

+0

嘗試UpdatePanel1.update();在下拉綁定 –

+0

後,我試了一下,仍然是同樣的問題@RAJESH KUMAR –

回答

0

刪除的ClientIDMode = 「靜態」 屬性格式