abhinandan506 Ответов: 1

Treeview checkbox - установите/снимите флажок родительские узлы, если установлен флажок дочерние


Привет,

Я использую Treeview с ShowCheckBoxes="All" , так что в основном у меня есть дерево со всеми узлами флажков. Я использую TreeView для динамического заполнения кода дерева.

Мои требования следующие:

1) Если выбрать любой дочерний узел, то проверяются все родительские узлы. как снизу вверх проверено

ex :- Treeview Exmp-
         >>  India 
                   >>New Delhi
                   >>Chandigarh
                   >>Bangalore
                   >>KolKata

если я выберу Bangalore после автоматической проверки Chandigarg, New Delhi И родительский узел India. Jquery,JavaScript,серверная сторона все, что используется

Кто-нибудь может мне помочь..
Заранее спасибо...

Что я уже пробовал:

$(document).ready(function () {

            $("#<%= TreeView1.ClientID %>").find("input").click(function () {

                

                    var parentChk = $("#" + $(this).parents(":eq(4)").attr("id").replace('Nodes', 'CheckBox'));
                    debugger;
                    var allChecked = true;
                    var allUnchecked = true;

                    $(this).parents(":eq(4)").find("input").each(function () {

                        if ($(this).attr("checked")) {

                            allUnchecked = false;
                        }
                        else {
                            allChecked = false;
                            parentChk.attr("checked", true);
                        }
                    });

                    if (allChecked) {
                        parentChk.attr("checked", true);
                    }
                    else if (allUnchecked) {
                        parentChk.attr("checked", false);
                    }
            });
        });

1 Ответов

Рейтинг:
1

Altaf Ansari

Попробуйте это его работа отлично..

На TreeView After_Check Событие :

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)    
    {    
       if (e.Node.Checked)    
           CheckAllChildNodes(e.Node, true);    
        else    
          CheckAllChildNodes(e.Node, false);    
    }


Проверьте или снимите флажок функция узлов :

private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)  
    {  
        foreach (TreeNode node in treeNode.Nodes)  
        {  
            node.Checked = nodeChecked;  
            if (node.Nodes.Count > 0)  
            {  
                this.CheckAllChildNodes(node, nodeChecked);  
            }  
        }  
    }