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 ...
随机推荐
- 【BZOJ3450】【Tyvj1952】Easy 可能DP
联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- 解决tomcat占用8080端口
怎么解决tomcat占用8080端口问题图文教程 怎么解决tomcat占用8080端口问题 相信很多朋友都遇到过这样的问题吧,tomcat死机了,重启eclipse之后,发现 Se ...
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- HammerDB数据库压力工具使用简略步骤
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/38879681 HammerDB数据库压力工具使用简略步骤 尽管没有图,可是文字 ...
- jenkins综合cobertura,来电显示cobertura的report
我的项目是使用maven作为构建工具.左右maven如何整合jenkins请参阅: http://blog.csdn.net/yaominhua/article/details/40684355 本文 ...
- POJ 3928 & HDU 2492 Ping pong(树阵评价倒数)
主题链接: PKU:http://poj.org/problem?id=3928 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Descript ...
- API接口开发简述示例
作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的.API(Application Programming Interfac ...
- 【剑指offer】Q32:从1至n整1出现的次数(python)
def q32(n, len): if n < 0: return 0 elif n <= 1: return n total = 0 while n > 0: if n >= ...
- Asterisk 未来之路3.0_0004
原文:Asterisk 未来之路3.0_0004 Asterisk Wiki asterisk 的Wiki是很多启迪和困惑的发源地,另外一个最重要的VOIP知识库www.voip-info.org ...
- 使用vsnprintf后链接错误及解决方法
/home/merlin/swinstall/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/../lib//../../../../a ...