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表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...
随机推荐
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- TCP连接状态
TCP 连接状态按 TCP 协议的标准表示法, TCP 可具有如下几种状态,为讨论方便,如下讨论中区分服务端和客户端,实际软件处理上对二者一视同仁. CLOSED关闭状态.在两个通信端使用“三路握手” ...
- J2EE之验证码实现
package cn.itcast.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; i ...
- c# socket 判断端口是否被占用
using System.Net; using System.Net.Sockets; using System.Net.NetworkInformation; IPGlobalProperties ...
- Zepto
移动开发流量省起来之Zepto 事情是这样的:最近开发的一个手机网站客户反应访问起来特别慢,刷了半天才能看到页面,然后问我们是不是网站出问题了.于是我赶紧找了各种手机测试一下,没有问题,首先排除程序错 ...
- 微信应用号开发知识贮备之Webpack实战
天地会珠海分舵注:随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生.作为行业内人士,我们很应该去拥抱这个趋势.这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没 ...
- 表单元素的外观改变(webkit and IE10)
1.禁止表单默认外观: input,select{ -webkit-appearance:none; appearance:none; }2.伪元素改变ie10表单元素默认外观 select::-ms ...
- 那些必须要知道的Javascript
原文:那些必须要知道的Javascript JavaScript是前端必备,而这其中的精髓也太多太多,最近在温习的时候发现有些东西比较容易忽略,这里记录一下,一方面是希望自己在平时应用的时候能够得心应 ...
- 轻量级IOC框架Guice
java轻量级IOC框架Guice Guice是由Google大牛Bob lee开发的一款绝对轻量级的java IoC容器.其优势在于: 速度快,号称比spring快100倍. 无外部配置(如需要使用 ...
- unity3d 血液
这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的. 第一步.先在UI Root里制作头像和血条. 这个制作步骤基本和我前面一篇文章介绍头像血条的制作步 ...