ASP.NET MVC中下拉列表的实现
2009-06-14 17:03
579 查看
可以通过jQuery的ajax请求在页面重实现级联列表的效果,主要步骤如下:
1,扩展jQuery函数,编写清空何加载下拉列表的函数,代码如下:
2,在controller中编写方法,从数据库中取得数据并序列化为JSON对象,源代码如下:
3,在view中通过JQUERY发出ajax请求在服务器段取得数据并生成下拉列表,在父列表中的change事件中动态改变子列表的option,源代码如下:
1,扩展jQuery函数,编写清空何加载下拉列表的函数,代码如下:
(function($) { $.fn.emptySelect = function() { return this.each(function() { if (this.tagName == 'SELECT') this.options.length = 0; }); } $.fn.loadSelect = function(optionsDataArray) { return this.emptySelect().each(function() { if (this.tagName == 'SELECT') { var selectElement = this; $.each(optionsDataArray, function(index, optionData) { var option = new Option(optionData.caption, optionData.value); if ($.browser.msie) { selectElement.add(option); } else { selectElement.add(option, null); } }); } }); } } )(jQuery);
2,在controller中编写方法,从数据库中取得数据并序列化为JSON对象,源代码如下:
// //Get kinds public ActionResult getKinds() { //IQueryable<SelectData> sl; //SelectData[] sl = new SelectData[1]; //int i = 0; List<SelectData> sl = new List<SelectData>(); var kinds = infoRepository.FindAllKinds(); foreach (var kind in kinds) { SelectData sd = new SelectData() { caption = kind.kind_desc, value = kind.info_kind.ToString() }; sl.Add(sd); } return Json(sl); } // //Get classes public ActionResult getClasses(int info_kind) { List<SelectData> sl = new List<SelectData>(); var classes = infoRepository.FindClassesByKind(info_kind); foreach(var infoclass in classes) { SelectData sd = new SelectData() { caption = infoclass.class_desc, value = infoclass.info_class.ToString() }; sl.Add(sd); } return Json(sl); }
3,在view中通过JQUERY发出ajax请求在服务器段取得数据并生成下拉列表,在父列表中的change事件中动态改变子列表的option,源代码如下:
$(function() { var url = window.location.href.replace(/Create/, "getKinds"); $.getJSON(url, function(data) { $('#info_kind').loadSelect(data); }); var url2 = window.location.href.replace(/Create/, "getClasses"); // var kindValue = $(this).val(); // alert(kindValue); $.getJSON( url2, { info_kind: 0 }, function(data) { $('#info_class').loadSelect(data); } ); $('#info_kind').change(function() { var url = window.location.href.replace(/Create/, 'getClasses'); // alert(url); var kindValue = $(this).val(); var info_class = $('#info_class'); // alert(info_class); $.getJSON( url, { info_kind: kindValue }, function(data) { info_class.loadSelect(data); } ); }); } )
相关文章推荐
- 用Knockoutjs与Asp.net MVC实现级联下拉列表
- ASP.NET MVC中实现数据库填充的下拉列表 .
- ASP.NET MVC 下拉列表实现
- ASP.NET C#生成下拉列表树实现代码
- asp.net 下拉列表无级数据绑定实现代码
- dhl:ASP.NET MVC + Jquery实现Ajax下拉框数据2或3级联动(+用户控件)
- ASP.NET MVC下使用AngularJs语言(六):获取下拉列表的value和Text
- Asp.net MVC3 企业网站系统高仿博客园 首页左侧列表页面 实现效果
- asp.net 下拉列表无级数据绑定实现代码
- ASP.NET.MVC--注解和反射将Enum转换List<SelectListItem>为@Html.DropDownListFor()下拉列表的通用方法
- asp.net实现树形下拉列表
- Asp.net mvc实现通过下拉框选择页码后自动跳页
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- asp.net实现省市区级联下拉列表并保存状态
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- asp.net MVC几种绑定下拉列表的写法
- ASP.NET C#生成下拉列表树实现代码
- asp.net MVC 中枚举创建下拉列表?
- [Asp.Net Mvc] 我的下拉列表扩展