省市联动
2015-09-01 20:51
381 查看
学校上课时老师实现的省市联动都是通过服务器端控件的IsPostback属性实现的,然而我知道这在实际应用中一点用也没有,选项变一下就刷新一下页面,根本不现实,事实上网上看到的省市联动都是无刷新的.但我不知道怎样实现,没有学过ajax,也没有任何思路,学过ajax后,又想起了这个恋恋不忘的问题,于是自己思索实现了.不知道真正的企业中是怎么实现的,觉得我的方法好像有点绕,不管怎么说,功能是实现了.
我的省市数据都是基于数据库的,数据库就不上了,大体结构如下:
View Code
当然这里完全没必要使用服务器端控件的下拉框,直接使用html控件应该就可以的,我只是为了过一把在JavaScript中找到服务器端控件在客户端对应id而用的,其实就是这个:$("#<%=ddlPro.ClientID%>"),
只是这样实现加载的时候页面出现有延迟能够看到空的下拉框变成有数据的过程,体验很不好,不知道怎么解决,好忧伤.....
我的省市数据都是基于数据库的,数据库就不上了,大体结构如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ProAndCity.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="JS/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(function () { proInit();//加载省份 $("#<%=ddlPro.ClientID%>").change(selectChange); selectChange(); }); //省份选项变化事件 var selectChange=function () { $("#<%=ddlCity.ClientID%>").html(""); var proId = $(this).val()==""?0:$(this).val(); $.post("/CityRequest.ashx", { "proId": proId }, function (data) { var obj = eval(data); for (var i = 0; i < obj.length; i++) { var areaName = obj[i].AreaName; var areaId = obj[i].AreaId; $("#<%=ddlCity.ClientID%>").append('<option value="' + areaId + '">' + areaName+ '</option>'); } }); }; //加载省份 var proInit = function() { $.post("/ProInit.ashx", function (data) { var obj = eval(data); for (var i = 0; i < obj.length; i++) { var areaName = obj[i].AreaName; var areaId = obj[i].AreaId; $("#<%=ddlPro.ClientID%>").append('<option value="' + areaId + '">' + areaName + '</option>'); } }); } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="ddlPro" runat="server"> </asp:DropDownList> 城市:<asp:DropDownList ID="ddlCity" runat="server"> </asp:DropDownList> </div> </form> </body> </html>
View Code
当然这里完全没必要使用服务器端控件的下拉框,直接使用html控件应该就可以的,我只是为了过一把在JavaScript中找到服务器端控件在客户端对应id而用的,其实就是这个:$("#<%=ddlPro.ClientID%>"),
只是这样实现加载的时候页面出现有延迟能够看到空的下拉框变成有数据的过程,体验很不好,不知道怎么解决,好忧伤.....
相关文章推荐
- ajax异步请求
- Spring AOP 静态代理与动态代理
- POJ 1741 Tree(树分治)
- JavaWeb笔记——ajax异步请求
- #pragma 预处理指令详解
- UIToolbar工具栏类
- 二进制读取jpg和写jpg图
- javascript经典面试题 全局变量和局部变量 变量作用域
- TQ2440 学习笔记—— 11、嵌入式编程基础知识【arm-linux-objcopy、objdump选项】
- LeetCode Candy Greedy
- 输入一个有序数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字
- 编程珠玑 第十五章 散列表应用 hash字符串
- ASD控制的小球_EasyX教程作业
- POJ3270 数学题置换
- Welcome to JAVA!(第一课课后练习)
- Armijo线搜索
- 我有DIY一Android遥控-所有开源
- 《Java编程思想》第一二章
- Number of Islands —— Leetcode(重要的一类题)
- 遍历单链表一次,找出链表中间结点