Treeview с чекбоксами
У меня есть treeview, и я ставлю флажок в каждом treenode.Я пишу событие treeview_treenodeCheckChanged для того, чтобы, если parentnode проверен, его дочерние узлы были проверены.Но сначала это событие не сработало, а потом я погуглил и обнаружил, что должен успешно использовать метод postback для этого события.Теперь событие работает, но я не хочу, чтобы мой проект обновлялся в каждый клик.Пожалуйста, помогите мне..
Что я уже пробовал:
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e) { if (e.Node.ChildNodes.Count > 0 && e.Node.Checked) { foreach (TreeNode childnode in e.Node.ChildNodes) { childnode.Checked = true; } } else if (e.Node.ChildNodes.Count > 0 && !e.Node.Checked) { foreach (TreeNode childnode in e.Node.ChildNodes) { childnode.Checked = false; } } else if (e.Node.ChildNodes.Count == 0 && e.Node.Checked) { e.Node.Parent.Checked = true; } else if (e.Node.ChildNodes.Count == 0 && Count_checkedChilds(e.Node.Parent) == 0) { e.Node.Parent.Checked = false; } } protected int Count_checkedChilds(TreeNode node) { int k = 0; foreach (TreeNode childnode in node.ChildNodes) { if (childnode.Checked == true) { k++; } } return k; }
<script type="text/javascript"> function postBackByObject() { var o = window.event.srcElement; if (o.tagName == "INPUT" && o.type == "checkbox") { __doPostBack('TreeView1', ''); } } </script>