如何根据集合动态构建复选框选择控件
2015-07-27 21:26
281 查看
背景:根据列表或集合,构建复选框控件,从中选取若干选项。比如,构建城市选择控件,城市按照字母分组进行展示。再比如,构建学生选择控件,学生按照城市进行分组展示。常作为分部视图使用。
效果图:
View Code
关键代码讲解:
ViewBag.CityList = stuList;通过ViewBag将列表数据传递到,前台页面中。
var tmp = ViewBag.CityList as List<STU>;获取后台传递过来的列表,并解析成List。
foreach...foreach 解析列表,按照城市进行分组,按照年龄的大小进行组内排序。详情见:C#中对泛型List进行分组输出元素
JQuery代码,当勾选每个学生选项时进行判断,如果同组的其他同学是否被勾选,如果有没有勾选的同学,则城市同样不被选中。
其中,prev方法用来查找前一个同胞元素(同级)。且如果checkbox被选中,该属性的值为checked,否则为undifined。
5. $("#checkedAll").removeAttr("checked");移除对某checkbox的选中,主要用于各选择元素之间的联动。
问题:最麻烦的是,处理各个元素之间的联动,如全选,或者选择某一城市,或者是选择某一单个同学,都将可能对其他checkbox产生影响。注意上面的JS代码有不完善的地方,请自行处理。
效果图:
public class CheckBoxController : Controller { // // GET: /CheckBox/ public ActionResult Index() { List<STU> stuList = new List<STU>() { new STU{ID=1,Name="Lily",Age=18,City="NewYork"}, new STU{ID=2,Name="Lucy",Age=20,City="NewYork"}, new STU{ID=1,Name="LiLei",Age=18,City="BeiJing"} }; ViewBag.CityList = stuList; return View(); } } public class STU { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string City { get; set; } }
View Code
关键代码讲解:
ViewBag.CityList = stuList;通过ViewBag将列表数据传递到,前台页面中。
var tmp = ViewBag.CityList as List<STU>;获取后台传递过来的列表,并解析成List。
foreach...foreach 解析列表,按照城市进行分组,按照年龄的大小进行组内排序。详情见:C#中对泛型List进行分组输出元素
JQuery代码,当勾选每个学生选项时进行判断,如果同组的其他同学是否被勾选,如果有没有勾选的同学,则城市同样不被选中。
$obj.parent().parent().find('input').each(function () { if ($(this).attr('Checked') != "checked") { $obj.parent().parent().prev('tr').find('input').removeAttr('checked'); } });
其中,prev方法用来查找前一个同胞元素(同级)。且如果checkbox被选中,该属性的值为checked,否则为undifined。
5. $("#checkedAll").removeAttr("checked");移除对某checkbox的选中,主要用于各选择元素之间的联动。
问题:最麻烦的是,处理各个元素之间的联动,如全选,或者选择某一城市,或者是选择某一单个同学,都将可能对其他checkbox产生影响。注意上面的JS代码有不完善的地方,请自行处理。
相关文章推荐
- C语言qsort和C++sort的用法小结和区别比较
- 深入理解Java的接口和抽象类
- iOS单例模式(Singleton)
- [知识点]Tarjan算法
- 小工具之apk黑屏自动检测
- Spring3.0学习札记一Spring IOC控制反转(2)
- 黑马程序员-ios学习笔记 oc 继承
- github使用说明二
- The Seven Percent Solution
- 二叉树的链式存储
- 程序无响应原因
- HDU 1406.完数【筛选法以及特殊方法】【7月27】
- Silverlight学习之RenderTransform特效(五种基本变换)及(矩阵变换MatrixTransform)
- wpf4 文字 模糊 不清晰 解决方法
- Delphi学习第四天
- 用泛型减少重复代码,使代码更合理、更优雅
- Leetcode Q191:Number of 1 Bits
- PCL点云库配置
- ROS学习(三)参数服务与launch文件
- SVC入门知识和JSVM基础实验