今天是六一儿童节,来谈谈Checkbox,前面的博客已经提到了关于单选、多选、反选、全选等问题的处理,这里作一下补充说明。
全选/反选
<td width="5%"><input type="checkbox" name="r1" class="chkPriKey" value="@item.PriKey" /></td>
function selectAll() { if ($("#CheckboxAll").is(":checked")) { $("[name=r1]:checkbox").prop("checked", true) } else { $("[name=r1]:checkbox").prop("checked", false) } }
中规中矩,没什么亮点,根据园友Vanteking 的评论,得到改进方法
$("#SelectAll").click(function () { var _check = $(this).prop('checked') $("[name=r1]:checkbox").prop('checked', _check) })
进一步观察发现,所有复选框的checked属性值和 控制全选的复选框的checked的属性值时相同的,因此,再次更进为
$("#SelectAll").click(function () { $("[name=r1]:checkbox").prop('checked', this.checked); })
既然点击了复选框,总是要对这些数据进行操作,假设是作删除操作,必然涉及到传值,选择 Each + push 的方法,上一篇作出过说明,这里就不再赘述。
如果遇到是这样一种情况,后台将一个bit值传到前台,视图根据其 bool值 来显示Checkbox 是否勾选,该选框不可编辑
(PS: bit类型的值,创建实体类时,对应的是bool值,在ADO.net操作时,当做bool值来处理,存储数据库时会自动转为bit类型)
其实,对于Checkbox标签,只要有checked 属性,即使赋值为 " ", 界面显示时,仍为勾选状态
那么,思路: bool值为true ,显示checked属性,反之,不显示
理想实现: 三目运算符
<input type="checkbox" @(Html.Raw(item.FunctAuthFlag==true?"checked="checked"":"")) />
对于不可编辑 添加一属性设置:disabled="disabled" 即可
<input type="checkbox" disabled="disabled" @(Html.Raw(item.FunctAuthFlag==true?"checked="checked"":"")) />
---- 市人皆大笑,举手揶揄之