日期:2014-05-17  浏览次数:20382 次

可以不让SelectedIndexChanged刷新页面吗?
我在注册页面,弄了个省市联动的DropDownList

问题是,发现SelectedIndexChanged之前会再load一次页面

那么我添加上IsPostBack,两个DDL可以联动了,但是验证码会刷新!!!,我的验证码是用JS刷新的,并且同时会把之前填好的密码、邮箱等其他内容就会刷掉了

我的验证码是一个ashx处理文件,

问过说可以用JS来联动省市ddl控件,那怎么写?

谢谢各位指点了,本人这几周来学习.NET举步为艰啊,在这里感谢各位对本人层出不穷的问题的耐心解答

感谢

代码:
C# code
    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();
        }
    }


C# code
 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();
    }



------解决方案--------------------

UpdatePanel
HTML code

 <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>

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