2012-07-23 40 views
3

我有一个自定义树视图从asp.net树视图控件继承。与第n级亲子关系。基于一些计算我已经检查过子节点。如果所有的子节点都被选中,我想要检查父节点。由于我正在检查基于某种计算的子节点,所以检查事件后我无法使用。 有人可以为我提供C#代码吗?检查父节点,如果所有的孩子都检查C#asp.net

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; 
      } 
} 

回答

2

此方法将返回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; 
    } 
相关问题