我建立一个treeView把ShowCheckBoxes="All"这样就可以出现选择框,但是我现在的问题是如何实现选择子结点时把父节点同时选上,当选中父节点时把所有的子结点都选上。

解决方案 »

  1.   


    private void TreeView1_AfterSelected(object sender,TreeViewEventArgs e)
    {
      TreeNode curNode = e.Node;
      if(curNode.ChildNodes.Count > 0)  //选的是父节点
      {
        if(curNode.Checked)
        {
          foreach(TreeNode node in curNode.ChildNodes)
          {
            node.Checked = true;
          }
        }
      }
      else
      {
        if(curNode.ParentNode != null && curNode.Checked)
        {
          curNode.ParentNode.Checked = true;
        }
      }
    }
      

  2.   

    关于你发的那段代码,关键是,我不知道怎么调用,没有onclick函数啊。我原来写了个和你很相似的代码放在OnTreeNodeCheckChanged事件里,但是要等到提交后才调用,郁闷啊。
      

  3.   

    写javascript,用onselectedindexchange事件,所有操作都写在脚本里
      

  4.   

    写脚本,onselectedindexchange事件,所有的操作都写在脚本里
      

  5.   

    在说明一点,我的书的定义是
    <asp:TreeView  ID="list_menu" runat="server" NodeWrap="True"   ShowCheckBoxes="All"   >
    </asp:TreeView>
    节点是后台数据绑定,这里面没有onselectedindexchange事件
    我本来是用OnTreeNodeCheckChanged,OnTreeNodePopulate但是要提交之后才能显出效果,也就是说当提交后这两个事件才执行。
      

  6.   

    一些都不好用,还是去http://guozhenghu.blog.163.com/去看看吧,这里有完全正确的答案,不过把分数还是发给大家吧,谢谢大家的参与!