似乎这不是什么大问题,但我仍然无法解决问题: 在我的剃刀视图中,我显示了许多按三列组成的复选框,我想为检查所有行(每3个复选框)的每一行创建一个复选框,所以这是我使用jQuery做的:
<table>
<tr>
@{
int cnt = 0;
string sr =null;
string j = null;
List<Security.Models.AssignedRolesVM> Roles = ViewBag.tp_role;
foreach (var role in Roles)
{
if (cnt++ % 3 == 0)
{ sr=cnt.ToString();
j =(cnt+1).ToString();
@:</tr><tr>
@: <td><input type="checkbox" id=j /></td>
<script src="~/Scripts/jquery-1.10.2.min.js">
</script>
<script type="text/javascript">
$(function () {
$(j).click(function () {
$('input[name=sr]').prop("checked", $(this).prop("checked"));
});
$('input[name=sr]').click(function () {
if ($('input[name=sr]').length == $('input[name=sr]:checked').length) {
$(j).prop("checked", "checked");
}
else {
$(j).removeProp("checked");
}
});
});
</script>
}
@:<td>
<input type="checkbox"
name=sr
class="checked"
value="@role.RoleID"
@(Html.Raw(role.Assigned ? "checked=\"checked\"" : "")) />
@role.RoleID @: @role.Name
@:</td>
}
@:</tr>
}
</table>
但它不是只检查行,而是检查所有复选框。 在我看来,循环是正确的(sr应该在每次模数3时改变),任何帮助?