2014-04-25 66 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 = “静态” 属性格式