前台页面: 国家:<asp:DropDownList ID="dopCountry" runat="server"> </asp:DropDownList> 省份:<select id="dopProvince" runat="server"> </select> 市区:<select id="dopCity" runat="server"> </select> 前台页面引用的js文件: $(document).ready(function() { $("#dopCountry").change(function() { var id = $(this).val(); $.ajax({ type: "POST", url: "Ajax/AreaListHandler.ashx", data: { type: "Province", id: id }, success: function(data) { if (data == "fail") { alert("loading failed"); } else { addProvinceList(data); } } }); }); $("#dopProvince").change(function() { var id = $("#dopProvince").val(); $.ajax({ type: "POST", url: "../Ajax/AreaListHandler.ashx", data: { type: "City", id: id }, success: function(data) { if (data == "fail") { alert("loading failed"); } else { addCityList(data); } } }); }); }); //add country list function addProvinceList(str) { var strArray = str.split(";"); $("#dopProvince").empty(); for (var i = 0; i < strArray.length; i++) { var strOptArr = strArray[i].split(","); $("#dopProvince").append("<option value='" + strOptArr[0] + "'>" + strOptArr[1] + "</option>"); } } //add city list function addCityList(str) { var strArray = str.split(";"); $("#dopCity").empty(); for (var i = 0; i < strArray.length; i++) { var strOptArr = strArray[i].split(","); $("#dopCity").append("<option value='" + strOptArr[0] + "'>" + strOptArr[1] + "</option>"); } } AreaListHandler.ashx文件: using System; using System.Collections.Generic; using System.Web; using PLA.BLL; using System.Text; using PLA.Model; namespace Web.BackOffice.Ajax { /// <summary> /// get country,province,city list /// </summary> public class AreaListHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string type=context.Request["type"]; string id = context.Request["id"]; StringBuilder listStr = new StringBuilder(); CommonBLL commonBLL = new CommonBLL(); //get province list if (type == "Province") { IList<AreaInfo> provinceList = commonBLL.GetProvinceByCountryID(id); foreach (AreaInfo areaInfo in provinceList) { listStr.Append(areaInfo.A_ID + "," + areaInfo .P_Name+ ";"); } int startIn = listStr.Length - 1; listStr.Remove(startIn, 1); context.Response.Write(listStr); }//get city list else if (type == "City") { IList<AreaInfo> provinceList = commonBLL.GetCityByProvinceID(id); foreach (AreaInfo areaInfo in provinceList) { listStr.Append(areaInfo.A_ID + "," + areaInfo.P_Name + ";"); } int startIn = listStr.Length - 1; listStr.Remove(startIn, 1); context.Response.Write(listStr); }else { context.Response.Write("fail"); } } public bool IsReusable { get { return false; } } } }