foreach (DataRow row in ResultSet.Tables[0].Rows)
            {
                //动态创建子节点
                TreeNode NewNode = new TreeNode(row["vPlanName"].ToString(), row["vPlanCode"].ToString());
                NewNode.PopulateOnDemand = false;
                NewNode.SelectAction = TreeNodeSelectAction.Select;                //把子节点添加到根节点上去
                node.ChildNodes.Add(NewNode);
                    //手动创建叶节点
                    TreeNode node1 = new TreeNode();
                    node1.Text = "自我评价";
                    node1.Value = row["vPlanCode"].ToString();                    TreeNode node2 = new TreeNode();
                    node2.Text = "评价他人";
                    node2.Value = row["vPlanCode"].ToString();                    
                    //把叶节点添加到子节点上去
                    NewNode.ChildNodes.Add(node1);
                    NewNode.ChildNodes.Add(node2);
            }protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        //获取当前选中的叶节点的 text
        string type = TreeView1.SelectedNode.Text;
        change(type);
    }    //根据选中的text 实现不同的业务
    public void change(string type) 
    {
        if (type == "自我评价")
        {
            
        }
        if (type == "评价他人")
        {
            
        }
    }
     问题是 不管我点自我评价  还是评价他人   change()中只会触发 if (type == "自我评价") 而且是100%触发~~~   是不是  selectnodechanged()   对  动态添加节点 和 手动添加节点   处理机制不一样   
   还是什么其他的问题··~~    
   大家帮忙看看~~~ 

解决方案 »

  1.   

    点"评价他人"时type 的值是什么?
    断点找一下
      

  2.   

    你不应该用这个事件驱动. 用click 事件驱动吧 ,然后用             TreeNode node = this.tvGoodsType.SelectedNode;
                if (node == null || node.Tag == null) return;获取当前的节点,然后进行操作
      

  3.   


    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                //获取当前选中的叶节点的 text
                 string type=e.Node.Text;
                 change(type);
            }
     有这个事件是可以的,我试过了
      

  4.   


    我的treeview里好想没有 treeView1_NodeMouseClick事件
      

  5.   

    。 没获取到值在好好看看!!!
    TreeView1.SelectedNode.Text;
      treeview  有selectedvalue这个属性么
      

  6.   


    有selectedvalue属性~~ 但是真没找到treeView1_NodeMouseClick方法~
      

  7.   

    你写的是C/S,还是B/S的
    C/S 的才会有treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    treeView1.SelectedNode.Text取值
      

  8.   

    B/S 和 C/S 不一样的哦
    而且要注意 Tag 值的问题,Value 和 Tag 是不一样的
      

  9.   


      是B/S~
        
         protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            //获取当前选中的叶节点的 text
            string type = TreeView1.SelectedNode.Text;
            change(type);
        }    我这样还是取不到值~~~~
      

  10.   


    我没有用到  tag   
    都是取的 text ··
      

  11.   

    foreach (DataRow row in ResultSet.Tables[0].Rows)
                {
                    //动态创建子节点
                    TreeNode NewNode = new TreeNode(row["vPlanName"].ToString(), row["vPlanCode"].ToString());
                    NewNode.PopulateOnDemand = false;
                    NewNode.SelectAction = TreeNodeSelectAction.Select;                //把子节点添加到根节点上去
                    node.ChildNodes.Add(NewNode);
                        //手动创建叶节点
                        TreeNode node1 = new TreeNode();
                        node1.Text = "自我评价";
                        node1.Value = row["vPlanCode"].ToString();                    TreeNode node2 = new TreeNode();
                        node2.Text = "评价他人";
                        node2.Value = row["vPlanCode"].ToString();                    
                        //把叶节点添加到子节点上去
                        NewNode.ChildNodes.Add(node1);
                        NewNode.ChildNodes.Add(node2);
                }