我在注册页面,弄了个省市联动的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> <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控件。 将你不需要刷新的内容放在这个控件中间就行。 该控件可以出现多个