我有三种方法Json可以在四个级别进行过滤 第一:治理 第二:区域 第三名:位置 四:ATMId
和每个人的方法Json都是这样的
public ActionResult FilteringArea(int Id)
{
var selectArea = db.Areas.Where(r => r.GovernateId == Id)
.Select(r => new { label = r.Name, id = r.Id });
return Json(selectArea, JsonRequestBehavior.AllowGet);
}
我用来在我的视图中过滤这个功能
$('#AreaId').on('change', function () {
getATM($(this).find('option:selected'));
getLocation($(this).find('option:selected'));
});
var getATM = function (obj) {
var $input = $(obj);
var jsonData = {
"AreaId": $input.val()
};
var addressData = JSON.stringify(jsonData);
$.ajax({
url: '/reports/FilteringATM',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: addressData,
success: function (result) {
$("#ATMId").find('option').remove().end();
$("#ATMId").parent("div").find(".e-select-options").find("ul").find("li").remove().end();
$("#ATMId").parent("div").find(".e-select-selected").text("-- ِAll--");
$("#ATMId").append("<option value=''>-- All--</option>").end();
for (i = 0; i < result.length; i++) {
if (i == 0) {
//$("#ATMId").parent("div").find(".e-select-selected").text(result[i].label);
//$("#ATMId").append("<option value=" + result[i].id + " selected='selected'>" + result[i].label + "</option>").end();
}
$("#ATMId").append("<option value=" + result[i].id + ">" + result[i].label + "</option>").end();
$("#ATMId").parent("div").find(".e-select-options").find("ul").append("<li class='undefined'>" + result[i].label + "</li>");
}
},
error: function (result) {
alert("failed");
}
});
}
和getLocation($(this).find('option:selected'));与之前的功能完全一样 问题是当试图改变第一级(区域再次)第三级,所以第四级仍然没有改变所以任何想法解决这个问题?