暑假留校跟老师做东西……用的全是没学过的东西,C#,asp.net都是现学的,所以对它们的整体结构框架类的不清楚
首先,鼠标移到那个树形控件的时候,都触发了什么时间,这一点就使我很郁闷,好像有很多事件,onclick,afterselected……,这些事件好像有些是属于html中的一些元素的的事件,还有一些属于asp中的控件(是不是这样?我也不是很清楚,最好也能解释下^^ :)我想达到的目的就是 我选择一个节点:
1.如果选择的是一个父节点,那么它的子节点都被选中
2.如果在点一下父节点,那么他和他的孩子节点就都没选中我先在做得 是 只能一个一个的选,很郁闷另外,完成这个任务是应该在后台完成那还是用脚本写?最后,其他的事情
微软的东西做的很闭塞,而且他的资料msdn是很大很多,但是不知道怎么用,感觉没有条理……不如java做得好,api都公开,检索资料很方便,……应该是我msdn用的少吧。

解决方案 »

  1.   

    还是先熟悉MSDN,看相关事件
    JS中可以完成 protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
        {
            SetChildChecked(e.Node);
        }   
     private void SetChildChecked(TreeNode parentNode)
        {
            foreach (TreeNode node in parentNode.ChildNodes)
            {
                node.Checked = parentNode.Checked;
                if (node.ChildNodes.Count > 0)
                {
                    SetChildChecked(node);
                }
            }
        }
      

  2.   

    微软做的东西很闭塞,这个你是怎么知道的,听别人说的,还是经过自己证实的。
    treeview这个控件,有一个属性ShowCheckBoxes=All,设置为All就可以了。
    还有要是想触发点击checkbox事件的话,还要写 OnTreeNodeCheckChanged 事件,但是你写好了这些代码以后,会发现没有作用,你还要在html中写入onclick="ClickTree()" ,然后加入js事件。
    function ClickTree()
    {
        var o = window.event.srcElement;
        if (o.tagName == "INPUT" && o.type== "checkbox")
        {
           __doPostBack("","");
        } 
    }
    更多的信息可以查网络。
      

  3.   

    To chen_ya_ping:
      thanks!
      说微软的东西很闭塞,可能表达的不准确,我想说的是这可能跟我的性格有关系吧,我喜欢具体的实现,想知道
    是思路否和我想的一样.因为我也是刚接触吧,使用那个msdn不顺手,不清楚c#库的框架或者类的继承图,所以很郁闷。。呵呵 被那个java的api惯坏了^^~ “ OnTreeNodeCheckChanged 事件,但是你写好了这些代码以后,会发现没有作用”这个我会用了,在那个<asp:TreeView ID="TreeView1" runat="server" ImageSet="Contacts" ShowCheckBoxes="All"   
      OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged">加上就能调用TreeView1_TreeNodeCheckChanged
    方法了。
       不过我不明白为什么后台能够相应的事件要在前台实现那?   
      

  4.   

    还是有个问题,选择是选择了父节点前面的复选框,在点击父节点后才能在选中它的子节点……有没有个事件就是相应checkbox的?还是TreeNodeCheckChanged就是响应这个事件的??