我做了复选框树视图。它也成功保存到我的数据库中。但它没有检查复选框。它仅检查父节点,但子节点仍未选中。
这是复选框的javascript。
BoundaryFill
保存代码:
<script type="text/javascript">
$(function () {
$("[id*=tvPermission] input[type=checkbox]").bind("click", function () {
var table = $(this).closest("table");
if (table.next().length > 0 && table.next()[0].tagName == "DIV") {
//Is Parent CheckBox
var childDiv = table.next();
var isChecked = $(this).is(":checked");
$("input[type=checkbox]", childDiv).each(function () {
if (isChecked) {
$(this).prop("checked", true);
} else {
$(this).prop("checked", false);
}
});
} else {
//Is Child CheckBox
var parentDIV = $(this).closest("DIV");
if ($("input[type=checkbox]", parentDIV).length == $("input[type=checkbox]:checked", parentDIV).length) {
$("input[type=checkbox]", parentDIV.prev()).prop("checked", true);
} else {
$("input[type=checkbox]", parentDIV.prev()).prop("checked", false);
}
}
});
})
这是显示它的背后代码:
foreach (TreeNode tn in tvPermission.CheckedNodes)
{
Page p = new Page();
p.Name = tn.Text;
p.Url = tn.Value;
validation.AddRange(PageManager.Save(p));
}