【问题标题】:check parent node if all child are checked C# asp.net如果检查了所有子节点,则检查父节点 C# asp.net
【发布时间】:2012-07-23 14:04:22
【问题描述】:

我有一个继承自 asp.net 树视图控件的自定义树视图。具有第 n 级父子关系。根据一些计算,我检查了子节点。如果检查了所有子节点,我希望应该检查父节点。因为我正在根据一些计算检查子节点,所以我不能在检查事件后使用。 有人可以提供我的 C# 代码吗?

    private TreeNode _parentNode;
private void CheckedParent(TreeNodeCollection nodeCollection)
        {
            foreach (TreeNode node in nodeCollection)
            {
                if (node.ChildNodes.Count > 0)
                {
                    _parentNode = node;
                    CheckedParent(node.ChildNodes);
                }
                else
                {
                    bool allChildChecked = true
                    foreach (TreeNode childNode in nodeCollection)
                    {
                        if (!childNode.Checked)
                        {
                            allChildChecked = false;
                        }
                    }

                }
            }
            if (allChildChecked )
            {
                _parentNode.Checked = true;
                _isAllChildChecked = false;
            }
}

【问题讨论】:

    标签: c# asp.net treeview


    【解决方案1】:

    如果所有子节点都被检查,该方法将返回true;否则它将返回false

        private bool AllChildChecked(TreeNode currentNode)
        {
            bool res = true;
    
            foreach (TreeNode node in currentNode.ChildNodes)
            {
                res = node.Checked;
                if (!res) break;
    
                res = this.AllChildChecked(node);
                if (!res) break;
            }
    
            return res;
        }
    

    【讨论】:

    • 这根本不起作用,.ChildNodes 甚至不存在,它只会遇到错误
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多