当前位置: 代码迷 >> ASP.NET >> 可以不让SelectedIndexChanged刷新页面吗?该如何解决
  详细解决方案

可以不让SelectedIndexChanged刷新页面吗?该如何解决

热度:8643   发布时间:2013-02-25 00:00:00.0
可以不让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控件。 将你不需要刷新的内容放在这个控件中间就行。 该控件可以出现多个