我在注册页面,弄了个省市联动的DropDownList问题是,发现SelectedIndexChanged之前会再load一次页面那么我添加上IsPostBack,两个DDL可以联动了,但是验证码会刷新!!!,我的验证码是用JS刷新的,并且同时会把之前填好的密码、邮箱等其他内容就会刷掉了我的验证码是一个ashx处理文件,问过说可以用JS来联动省市ddl控件,那怎么写?谢谢各位指点了,本人这几周来学习.NET举步为艰啊,在这里感谢各位对本人层出不穷的问题的耐心解答感谢代码:    protected void Page_Load(object sender, EventArgs e)
    {
        //绑定数据到ddl省份,城市
        if (!IsPostBack)
        {
            DataTable dt_prov;            dt_prov = spaceList.Get_Province();
            ddl_Province.DataSource = dt_prov.DefaultView;
            ddl_Province.DataValueField = "ProvinceID";
            ddl_Province.DataTextField = "ProvinceName";
            ddl_Province.DataBind();
        }
    } protected void ddl_Province_SelectedIndexChanged(object sender, EventArgs e)
    {
        
        provinceID = Convert.ToInt32(ddl_Province.SelectedValue.Trim().ToString());
        dt_city = spaceList.Get_City(provinceID);
        ddl_City.DataSource = dt_city.DefaultView;
        ddl_City.DataValueField = "CityID";
        ddl_City.DataTextField = "CityName";
        ddl_City.DataBind();
    }

解决方案 »

  1.   


    UpdatePanel <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
      <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                                <ContentTemplate>
                                                    所在地区:<asp:DropDownList ID="ddlProvince" Width="80px" runat="server" AutoPostBack="true"
                                                        AppendDataBoundItems="True" OnSelectedIndexChanged="ddlProvince_SelectedIndexChanged">
                                                        <asp:ListItem Text="全国" Value="-1"></asp:ListItem>
                                                    </asp:DropDownList>
                                                    &nbsp;<asp:DropDownList ID="ddlCity" runat="server" AppendDataBoundItems="True" Width="80px">
                                                        <asp:ListItem Text="所有地区" Value="-1"></asp:ListItem>
                                                    </asp:DropDownList>
                                                </ContentTemplate>
                                            </asp:UpdatePanel>
      

  2.   

    把控件放入Ajax控件ScriptManager里的UpdatePanel中。
      

  3.   


    谢谢,原来是Ajax控件
    回头学学用法,微软的这个Ajax和自己建的异步对象是一样的吗?
      

  4.   

    使用自带的ajax控件 。 就在工具箱里。   先放置一个<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    只能有一个。 
    <asp:UpdatePanel runat="server">
    ....需要无刷新的控件代码
    </asp:UpdatePanel>
    然后就是加一个updatepanel控件。 将你不需要刷新的内容放在这个控件中间就行。 该控件可以出现多个