JQ与AJAX 省市区三级联动下拉框
用于初学者学习基本的联动下拉框,废话不多说,见代码
首先看控制器里的3个下拉框对应代码:
public ActionResult GetProvinceList()
{
ProvinceRepository rep = new ProvinceRepository();
var selectlist = new SelectList(rep.GetProvinceList(), "ProvinceID", "ProvinceName");
return Json(selectlist);
} public ActionResult GetCityList(string text)
{
CityRepository rep = new CityRepository();
var selectlist = new SelectList(rep.GetCityList(text), "CityID", "CityName");
return Json(selectlist);
} public ActionResult GetAreaList(string text)
{
DistrictRepository rep = new DistrictRepository();
var selectlist = new SelectList(rep.GetAreaList(text), "AreaID", "AreaName");
return Json(selectlist);
}
接着,控制器非别去定义的Repository里面向数据库读取数据,并返回
LinkageDataContext db = new LinkageDataContext();
public IQueryable GetProvinceList()
{
var name = from m in db.province select m;
return name;
}
LinkageDataContext db = new LinkageDataContext();
public IQueryable GetCityList(string text)
{
var res = from m in db.city.Where(e => e.father == text) select m;
return res;
}
LinkageDataContext db = new LinkageDataContext();
public IQueryable GetAreaList(string text)
{
var res = from m in db.area.Where(e => e.father == text) select m;
return res;
}
其实以上三个Repository可以合成一个,不过本人为了后续个别设计就分开了,读者可自行设计。接下来就是View里面的代码,View里面分为两块,一块就是下拉框的Html,另一块就是JS代码实现数据联动。本人是用的Telerik形式。
<h>省:</h>
<title>菜单联动</title>
<%= Html.Telerik().DropDownList()
.Name("EmpProvince")
.DataBinding(databingding => databingding.Ajax()
.Select("GetProvinceList", "Home"))
%> <h>市:</h>
<%= Html.Telerik().DropDownList()
.Name("EmpCity") %> <h>区:</h>
<%= Html.Telerik().DropDownList()
.Name("EmpArea") %>
接下来是JS的代码了。
$(function () {
$('#EmpProvince').bind('valueChange', onEmpProvinceChangeCity);
$('#EmpCity').bind('valueChange', onEmpProvinceChangeCity2);
})
function onEmpProvinceChangeCity() {
var dropDownList = $('#EmpCity').data('tDropDownList');
var dropDownList3 = $('#EmpArea').data('tDropDownList');
dropDownList3.dataBind(null);
var text = $("#EmpProvince").data("tDropDownList").value();
getLinkageDatas(dropDownList,
text,
"DropDownListPrvUCity",
"获取城市联动数据失败!");
}
function onEmpProvinceChangeCity2() {
var dropDownList = $('#EmpArea').data('tDropDownList');
var text = $("#EmpCity").data("tDropDownList").value();
getLinkageDatas2(dropDownList,
text,
"DropDownListPrvUCity",
"获取城市联动数据失败!");
}
function getLinkageDatas(dropDownList, text, action, message) {
if (text == "") {
dropDownList.dataBind(null);
return;
}
$.ajax({
type: "Post",
url: '<%= @Url.Action("GetCityList","Home") %>',
data: { text: text },
dataType: "json",
success: function (data) {
dropDownList.dataBind(data);
},
error: function () {
}
});
}
function getLinkageDatas2(dropDownList, text, action, message) {
if (text == "") {
dropDownList.dataBind(null);
return;
}
$.ajax({
type: "Post",
url: '<%= @Url.Action("GetAreaList","Home") %>',
data: { text: text },
dataType: "json",
success: function (data) {
dropDownList.dataBind(data);
},
error: function () {
}
});
}
需要注意的是,代码的第八第九行是处理清空的情况,就是当重选一级下拉框时,对2级和3级显示的数据清空。
至于Model的话,读者可自行编写了。希望能够帮助到大家。本人也刚学不久,有不足的望指点。
JQ与AJAX 省市区三级联动下拉框的更多相关文章
- 用jsp实现省市区三级联动下拉
jsp+jquery实现省市区三级联动下拉 不少系统都需要实现省市区三级联动下拉,像人口信息管理.电子商务网站.会员管理等,都需要填写地址相关信息.而用ajax实现的无刷新省市区三级联动下拉则可以改善 ...
- jquery+html三级联动下拉框
jquery+html三级联动下拉框及详情页面加载时的select初始化问题 html写的三个下拉框,如下: <select name="ddlQYWZYJ" id=&q ...
- 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框
JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP mysql数据库 SpringMvc ajax Controller层 Service层 中国地区 省 ...
- Android实现三级联动下拉框 下拉列表spinner
Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...
- Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- JS年月日三级联动下拉框日期选择代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery+ligerform三级联动下拉框
如下为ligerform里的三级联动下拉框: var formData=[ {display:,width:,space:,type:"select",group:"区域 ...
- jq实现简单的二级联动下拉框
1 效果图 2 html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- ajax 实现三级联动下拉菜单
ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...
随机推荐
- Swift得知——使用和分类功能(四)
Swift得知--使用和分类功能(四) 总结Swift该功能使用的总可分为七类 1 ---- 没有返回值,没有參数的函数 2 ---- 有參数和返回值的函数 3 ---- 使用元祖来返回多个值 4 - ...
- Zepto Code Rush 2014——Dungeons and Candies
题目链接 题意: k个点,每一个点都是一个n * m的char型矩阵.对与每一个点,权值为n * m或者找到一个之前的点,取两个矩阵相应位置不同的字符个数乘以w.找到一个序列,使得全部点的权值和最小 ...
- 抄360于Launcher浮动窗口的屏幕显示内存使用情况(改进版)
MainActivity例如下列: package cc.cc; import android.os.Bundle; import android.view.View; import android. ...
- 多种语言socket编程集锦—win32
原文 http://www.blogjava.net/huyi2006/articles/263831.html 借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多 ...
- 深入理解JavaScript(1)
才华横溢的Stoyan Stefanov,在他写的由O’Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...
- NHibernate-Generator主键生成方式
NHibernate之Generator主键生成方式 (1) assigned主键由外部程序负责生成,无需NHibernate参与. (2) hilo通过hi/lo 算法实现的主键生成机制,需要额 ...
- 在Win7中安装程序集到GAC
原文:在Win7中安装程序集到GAC 微软为提高系统安全,自Vista推出后,在Windows系统中加入了一个新的东东——UAC(User Account Control),这样一个新的技术使得许多操 ...
- C#编程实践–帮老婆计算产假方案
摘要 今天中午午休时,和老婆聊天,老婆还过几天就要请产假了,她在网上问我让我帮她数一下该怎么请假最划算,老婆是个会过日子的人,面对此种要求我当然义不容辞,不过想到这个问题我的第一反应是:这个怎么可以用 ...
- DDD实践(一)
DDD实践切入点(一) 前两篇:大型系统的支撑,应用系统开发思想的变迁 之前大致说了使用DDD的前期准备,现在可以真正开始实践了,以我刚刚结束的一个简单的经典DDD方式的项目为例子,当然由于比较简单, ...
- GridView使用技巧
http://yushuir.blog.163.com/blog/static/4346713820081023103937681/