ASP.NET MVC页面UI之多级数据选择UI(行业信息、专业信息、职位信息的选择)
多级数据选择操作在开发中是常见的操作,比如选择行业信息时,一般有个大类,每个大类下边又包含很多小类,本文简单实现了弹出窗口一级一级选择功能。
本文博客出处:http://www.kwstu.com/ArticleView/admin_201392163458545 转载请注明!
一、效果图:


二、页面代码
<script src="../../Content/Js/selectlist.js"></script>
<script src="../../Content/Js/systools.js"></script>
<link href="../../Content/Css/kwstu.ui.css" rel="stylesheet" />
<script src="../../Content/Js/jquery.divbox.js"></script>
@Html.EditorFor(model => model.TRADENAME)@Html.HiddenFor(model => model.TRADEID)
三、JS代码
1、JS调用代码
$("#TRADENAME").focus(function () { GetTrade($(this).val(), "TRADENAME", "TRADEID", "/SysTools/GetFirstTradeList", "/SysTools/QueryLastTradeList", "/SysTools/GetOtherTradeList"); });
2、JS执行代码
//行业选择
function GetTrade(message, tmp1, tmp2, tmp3, tmp4, tmp5) {
name1 = tmp1; name2 = tmp2; url1 = tmp3; url2 = tmp4; url3 = tmp5;
//设置异步传输参数
var option = {
url: url1,
type: 'Get',
chche: false,
dataType: 'json',
data: { Message: message }, //发送服务器数据
success: function (data) { //成功事件
$("#kwstu_select ul li").die();
$("#kwstu_select").remove();
iptName = $(this).attr("id");
//var iptOffSet = $("#TRADENAME").offset();
//var iptLeft = iptOffSet.left;
//var iptTop = iptOffSet.top + 20;
var str = "<div id='kwstu_select'><span>请选择行业<a id='fh'>返回第一层列表</a> 快速查 找:<input id='kquery' type='text'/><font color=red>支持拼音首字母查询</font><a id='gb'>[ 关闭 ]</a></span><div id=info></div><ul></ul></div>";
var str2 = "";
$.each(data, function (i, item) {
str2 = str2 + "<li id='" + data[i].Value + "'>" + data[i].Text + "</li>";
});
$("body").append(str);
$("#kwstu_select ul").append(str2);
//$("#kwstu_select").css({ left: iptLeft + "px", top: iptTop + "px" });
$("#kwstu_select span a#fh").bind("click", function () {
$("#kwstu_select ul").empty();
$("#info").empty();
$("#info").hide();
$("#kwstu_select ul").append(str2);
});
$("#kwstu_select span a#gb").bind("click", function () {
$("#kwstu_select").CloseDiv();
});
$("#kwstu_select").OpenDiv();
//查询输入框获得焦点
$('#kquery').focus();
//快速查询
$("#kquery").focus(function () {
var bind_name = 'input';
if (navigator.userAgent.indexOf("MSIE") != -)
{ bind_name = 'propertychange'; }
$(this).bind(bind_name, function () {
var liId = $(this).attr("id");
var liText = $(this).val();
$("#info").show();
if (liText != "") {
var option = {
url: url2,
type: 'Get',
dataType: 'json',
data: { Message: liText }, //发送服务器数据
success: function (data) { //成功事件
listr = "";
$.each(data, function (i, item) {
listr = listr + "<li id='" + data[i].Value + "'>" + data[i].Text + "</li>";
});
$("#kwstu_select ul").empty();
$("#kwstu_select ul").append(listr);
},
error: function (XMLHttpRequest, textStatus, errorThrown) { //发送失败事件
alert(textStatus);
}
};
//进行异步传输
$.ajax(option);
}
})
})
$("#kwstu_select ul li").live("click", liBind);
},
error: function (XMLHttpRequest, textStatus, errorThrown) { //发送失败事件
alert(textStatus);
}
};
四、后台代码
///////////////////////////////行业联动下拉列表//////////////////////
/// 第一层行业
public ActionResult GetFirstTradeList(string message)
{
List<TSSYS_TRADE_BANK> list = db.TSSYS_TRADE_BANK.Where(c=>c.PID=="ROOT").OrderBy(c=>c.ID).ToList();
TSSYS_TRADE_BANK empty = new TSSYS_TRADE_BANK();
SelectList pList = new SelectList(list, "ID", "NAME");
return Json(pList, JsonRequestBehavior.AllowGet);
}
/// 第一层以后的行业
public ActionResult GetOtherTradeList(string message)
{
List<TSSYS_TRADE_BANK> list = db.TSSYS_TRADE_BANK.Where(c => c.PID == message).OrderBy(c => c.ID).ToList();
SelectList pList = new SelectList(list, "ID", "NAME");
return Json(pList, JsonRequestBehavior.AllowGet);
}
/// 快速查询
public ActionResult QueryLastTradeList(string message)
{
List<TSSYS_TRADE_BANK> list = db.Database.SqlQuery<TSSYS_TRADE_BANK>("Select ID,NAME,PID,SUBCLASSNO,SORT,ORDERNUM,EFFECT,ISSUB from TS.TSSYS_TRADE_BANK where (py(name) like '%" + message.ToUpper() + "%' or name like '%" + message + "%') and id not in (select pid from tssys_trade_bank) order by id").ToList();
SelectList pList = new SelectList(list, "ID", "NAME");
return Json(pList, JsonRequestBehavior.AllowGet);
}
五、相关资源下载
ASP.NET MVC页面UI之多级数据选择UI(行业信息、专业信息、职位信息的选择)的更多相关文章
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...
- ASP.NET MVC应用程序更新相关数据
为ASP.NET MVC应用程序更新相关数据 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈数据注解和验证
[ASP.NET MVC系列]浅谈数据注解和验证 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google C ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第七篇:为ASP.NET MVC应用程序 ...
- 解析ASP.NET Mvc开发之删除修改数据
目录: 1)从明源动力到创新工场这一路走来 2)解析ASP.NET WebForm和Mvc开发的区别 3)解析ASP.NET Mvc开发之查询数据实例 4)解析ASP.NET Mvc开发之EF延迟加载 ...
- ASP.NET MVC 5 学习教程:数据迁移之添加字段
原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符 ...
- Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter
上一篇有提到利用IHttpModule和ResultFilter实现页面静态化功能.后来经过一些改动,将ResultFilter中要实现的功能全部转移到IHttpModule中来实现 Asp.Net ...
- Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter
由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现a ...
- 为ASP.NET MVC应用程序读取相关数据
为ASP.NET MVC应用程序读取相关数据 2014-05-08 18:24 by Bce, 299 阅读, 0 评论, 收藏, 编辑 这是微软官方教程Getting Started with En ...
随机推荐
- CSharp设计模式读书笔记(11):外观模式(学习难度:★☆☆☆☆,使用频率:★★★★★)
定义: 外观模式:为子系统中的一组接口提供一个统一的入口.外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 模式角色与结构: 示例代码: using System; using Sys ...
- 【百度地图API】如何制作可拖拽的沿道路测距
原文:[百度地图API]如何制作可拖拽的沿道路测距 摘要: 地图测距,大家都会,不就map.getDistance麼.可是,这只能测任意两点的直线距离,用途不够实际啊.比如,我想测试北京天安门到北京后 ...
- Swift语言指南(四)--类型安全和类型推断
原文:Swift语言指南(四)--类型安全和类型推断 Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确.如果你的代码中有部分值需要String类型,你就不能错误地传递Int. 鉴于 ...
- Codeforces 437D The Child and Zoo(贪心+并查集)
题目链接:Codeforces 437D The Child and Zoo 题目大意:小孩子去參观动物园,动物园分非常多个区,每一个区有若干种动物,拥有的动物种数作为该区的权值.然后有m条路,每条路 ...
- Javascript规范
本文地址: http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语 ...
- C#验证IP地址
using System.Net; try { IPAddress a = IPAddress.Parse(输入的IP字符串); } catch (System.Exception ex) { Mes ...
- VMware Workstation 无法与 Windows XP \ Windows 7 \ Windows 8 进行共享文件夹。
1.这是一个小Bug,做法很简单. ----①.如果安装了VMware Tools,先卸载VMware Tools,重启虚拟机,再安装VMware Tools,重启虚拟机,就行了. ----②.如果没 ...
- SQL点滴12—SQL Server备份还原数据库中的小把戏
原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support 1 media families, ...
- 检测浏览器版本类型的JavaScript代码,终极版
下面的JavaScript代码,不仅可以判断PC端浏览器类型,还可以判断安卓.iOS.其他智能手机.平板电脑或游戏系统. 说废话貌似不是我的风格哈,直接上代码吧: var client = funct ...
- 关于标准I/O缓冲区和fork函数
标准I/O库提供缓冲的目的是尽可能减少使用read和write调用的次数.标准I/O提供三个类型的缓冲:全缓冲.行缓冲和不带缓冲.标准输入(stdin)和标准输出(stdout)是行缓冲,标准出错(s ...