Как сделать так, чтобы мой код отображал три состояния в виде дерева?
Мне нужно сделать флажок в виде дерева с тремя состояниями, но пока я могу сделать это только в два состояния:
если все дети проверены, родитель проверен.
если частичный ребенок проверен, родитель не проверен.
Но я хотел сделать это, если частичный ребенок проверен, родитель покажет квадратную проверку. Вот мой JavaScript для моего кода:
<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);
}
}
});
})
Как я могу изменить его, чтобы сделать его три состояния в древовидной структуре, потому что с этим кодом, он показывает только два состояния.
Есть ли лучший способ, которым я могу сделать режим с тремя состояниями?
Кстати, это мой код asp.net для моего дерева:
<asp:TreeView ID="tvPermission" runat="server" ShowCheckBoxes="All" NodeWrap="true" NodeIndent="2">
Надеюсь, кто-нибудь может мне помочь. Действительно ценю это.
Заранее спасибо.