四级联动

--------js部分

//绑定省份
GetSheng();
//修改的时候给个状态判断是否为修改
var action="<%=action%>";
var act="<%=HTEnums.ActionEnum.Edit.ToString()%>";//修改
if(action==act)//判断是否为修改
{
class_id=<%=province_id%>;//省份id
var all_options = document.getElementById("Sheng").options;//
for (i = 0; i < all_options.length; i++)
{
if (all_options[i].value == class_id) // 根据option标签的ID来进行判断 测试的代码这里是两个等号
{

all_options[i].selected = true;
}
}
$("#sheng").val(<%=province_id%>);
GetShi();//获取市区
$("#Shi").val(<%=city_id%>);
GetQu();//获取区县
$("#Qu").val(<%=area_id%>);//区id
GetMearchant();//获取商圈
var Buiness_options = document.getElementById("Buiness").options;//
var bussiness_id=<%=bussiness_id%>;//商圈id
for (i = 0; i < Buiness_options.length; i++)
{
if (Buiness_options[i].value == bussiness_id) // 根据option标签的ID来进行判断 测试的代码这里是两个等号
{

Buiness_options[i].selected = true;
}
}

}
});
//绑定中国所有的省份
function GetSheng() {
$("#Sheng").empty();
$("#Sheng").append("<option value=''>请选择省份</option>");
$.ajax({
type: "post",
url: "../../tools/province_city_area.ashx",
datatype: "josn", //数据类型
data: "type=GetProvince",
async: false, //把异步改为同步
success: function (data) {
var GetData = eval(data); //转一下型,GetData相当于一张表的模型了,打点就可以调用字段
$.each(GetData, function (i, item) {
$("#Sheng").append("<option value='" + item.id + "'>" + item.title + "</option>");
})
}
})
GetShi();
}
//获取对应省市下的市区
function GetShi() {
var sheng = $("#Sheng").val();
$("#Shi").empty();
$("#Shi").append("<option value=''>请选择市区</option>");
$.ajax({
type: "post",
url: "../../tools/province_city_area.ashx",
datatype: "josn",
data: "type=GetCity&Province=" + sheng,
async: false,
success: function (data) {
var GetData = eval(data);//获取传递过来的市区的json数据
$.each(GetData, function (i, item) {
$("#Shi").append("<option value='" + item.id + "'>" + item.title + "</option>");//绑定对应省份下面的所有市区
});
}
})
GetQu();
}
//获取对应市区下的区县
function GetQu() {
var shi = $("#Shi").val();
$("#Qu").empty();
$("#Qu").append("<option value=''>请选择区县</option>");
$.ajax({
type: "post",
url: "../../tools/province_city_area.ashx",
datatype: "josn",
data: "type=GetCityBlock&City=" + shi,
async: false,
success: function (data) {
var GetData = eval(data);//获取传递过来的对应市区的区县的json数据
$.each(GetData, function (i, item) {
$("#Qu").append("<option value='" + item.id + "'>" + item.title + "</option>");//绑定对应市区下的区县数据
});
}
})
GetMearchant();
}
//获取对应区县下的商圈
function GetMearchant() {
var Qu = $("#Qu").val();
$("#Buiness").empty();
$("#Buiness").append("<option value=''>请选择商圈</option>");
$.ajax({
type: "post",
url: "../../tools/province_city_area.ashx",
datatype: "josn",
data: "type=GetBussiness&Qu="+Qu,
async: false,
success: function (data) {
var GetData = eval(data);
$.each(GetData, function (i, item) {
$("#Buiness").append("<option value='" + item.id + "'>" + item.title + "</option>");
})
}
})

--------------------------

--------------------------------后台部分------------------------

public class province_city_area : IHttpHandler
{
HT.Web.UI.SysConfigPage scp = new HT.Web.UI.SysConfigPage();
EntitiesModel db = new EntitiesModel();
protected int province_id =0;
protected int city_id = 0;
protected int area_id = 0;

public void ProcessRequest(HttpContext context)
{

//this.province_id = HTRequest.GetQueryInt("Province");//获取传递过来的省份id
//this.city_id = HTRequest.GetQueryInt("City");//获取传递过来的省份id
//this.area_id = HTRequest.GetQueryInt("Qu");//获取传递过来的省份id

context.Response.ContentType = "text/plain";
string type = context.Request.Form["type"] == null ? "" : context.Request.Form["type"].ToString();
//省
if (type.Equals("GetProvince"))
{
var list = db.ht_category.where(c => c.class_layer == 2&&c.parent_id!=0).Select(x=>new {x.id,x.title}).ToList();
context.Response.Write(JsonConvert.SerializeObject(list));
}


//获取市的时候需要把省的ID传过来加载市
if (type.Equals("GetCity"))
{

string sheng =string.IsNullOrEmpty(context.Request.Form["Province"])?"0":context.Request.Form["Province"];
province_id = Convert.ToInt32(sheng);
var city_list = db.ht_category.where(c => c.parent_id == province_id &&c.parent_id != 0).Select(x => new { x.id, x.title }).ToList();
context.Response.Write(JsonConvert.SerializeObject(city_list));

}
//获取区的时候需要把市区传过来
if (type.Equals("GetCityBlock"))
{

string shi =string.IsNullOrEmpty(context.Request.Form["City"]) ? "0" : context.Request.Form["City"];
city_id =Convert.ToInt32(shi); //市区id
var area_list = db.ht_category.where(c => c.parent_id == city_id&&c.parent_id!=0).Select(x => new { x.id, x.title }).ToList();
context.Response.Write(JsonConvert.SerializeObject(area_list));

}
if (type.Equals("GetMearchant"))
{
string province =string.IsNullOrEmpty(context.Request.Form["Province"])? "0" : context.Request.Form["Province"];
string city =string.IsNullOrEmpty(context.Request.Form["City"])?"0": context.Request.Form["City"];
string qu_id =string.IsNullOrEmpty(context.Request.Form["Qu"])? "0" : context.Request.Form["Qu"];
province_id = Convert.ToInt32(province); //省份id
city_id = Convert.ToInt32(city);//市区id
area_id = Convert.ToInt32(qu_id); //区县id
var mearchant_list = db.ht_merchant.where(m => m.merchant_id > 0);
if (province_id > 0)
{
mearchant_list = mearchant_list.Where(m => m.province_id == province_id);//获取对应省份下面的所有店铺
}
if (city_id > 0)
{
mearchant_list = mearchant_list.Where(m => m.city_id == city_id);//获取对应市区下面的所有区县店铺
}
if (area_id>0)
{
mearchant_list = mearchant_list.Where(m => m.area_county_id == area_id);//获取对应区县下面的所有店铺
}
context.Response.Write(JsonConvert.SerializeObject(mearchant_list));
}
//获取商业圈的时候需要把区县的id传过来
if (type.Equals("GetBussiness"))
{
string area_id2 =string.IsNullOrEmpty(context.Request.Form["Qu"])?"0":context.Request.Form["Qu"];//获取传递过来的区县id
area_id = Convert.ToInt32(area_id2); //市区id
var business_list = db.ht_category.where(c => c.parent_id == area_id && c.parent_id != 0).Select(x => new { x.id, x.title }).ToList();
context.Response.Write(JsonConvert.SerializeObject(business_list));//获取对应区县下面的所有商圈
}


}

public bool IsReusable
{
get
{
return false;
}
}

 

每天进步一小步
原文地址:https://www.cnblogs.com/gongxiaoli/p/8205274.html