拥有不同 权限的人对应生成 不同的treeview1
我的思路是这样的 先从数据库读出整个树,然后判断节点的value值 如果值小于某个值就删除
    
删除语句
  TreeNode tmp = TreeView1.SelectedNode
  if (tmp.Depth == 0)
  TreeView1.Nodes.Remove(tmp);
  else
  {
  TreeNode parentNode = (TreeNode)tmp.Parent;
  parentNode.ChildNodes.Remove(tmp);
  }现在的问题是 如何选定这些节点(value小于某个值的节点)

解决方案 »

  1.   

    递归遍历判断值小于
    不添加到treview
    private void InitTree(TreeNodeCollection Nds,string parentId)
    {
    DataView dv=new DataView();
    TreeNode tmpNd;
    string intId;
    dv.Table=ds.Tables["tree"];
    dv.RowFilter="ParentId='" + parentId + "'" ;
    foreach(DataRowView drv in dv)
    {
    tmpNd=new TreeNode();
    tmpNd.Tag=drv["NodeId"].ToString();
    tmpNd.Text=drv["NodeName"].ToString();
    Nds.Add(tmpNd);
    intId=drv["ParentId"].ToString();
    InitTree(tmpNd.Nodes,tmpNd.Tag.ToString());
    }
    }  
      

  2.   

     你试着用下面这个试试。“####”代表你的代码
    switch (treeView1.SelectedNode.Level)
                    {
                        case 0:
                            #####################
                            break;
                        case 1:
                          ########################
                            break;
                        case 2:
                            ###########################
                            break;
                    }
      

  3.   


      foreach (DataRow childrow in ds.Tables["DiQu_2"].Rows)
            {
                L2 = new TreeNode(childrow["mingcheng"].ToString(), childrow["id"].ToString());
                L2.Expanded = false;
                foreach (TreeNode n in Tv.Nodes)
                {
                    if (n.Value == childrow["sid"].ToString())
                    {
                        n.ChildNodes.Add(L2);
                        childrow.Delete();
                        break;
                    }               
                }
            }
      

  4.   


    protected void CreateTreeView(TreeNodeCollection treenode,DataTable datasource,int parentNodeId,int RolValue)
        {
            string fliter = string.Format("ParentNodeId={0} and RoleId>{1}", parentNodeId, RolValue);
            DataRow[] drArr = datasource.Select(fliter);
            foreach (DataRow dr in drArr )
            {
                TreeNode node = new TreeNode();
                treenode.Add(node);
                node.Text = dr["DisplayName"].ToString();
                int NodeId = Convert.ToInt32(dr["NodeId"]);
                CreateTreeView(node.ChildNodes, datasource, NodeId, RolValue);
            }    }
    调用 CreateTreeView(TreeView1.Nodes,dt,0,1);
    生成了树 但是有个问题
    比如 一个节点的value为1
    他的子节点有个value值为3的节点
    现在我要把Value为3的节点显示出来 该怎么办