使用tree实现无限级树形菜单

来源:互联网 发布:杀毒软件推荐 知乎 编辑:程序博客网 时间:2024/06/05 11:04
//使用tree实现无限级树形菜单
  1. //使用tree实现无限级树形菜单(单张表)
  2. SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["字符串"].ConnectionString);
  3.         string cmdText = "SELECT * FROM CkType WHERE Flag='1'";//sql语句
  4.         DataSet ds = new DataSet();
  5.         protected void Page_Load(object sender, EventArgs e)
  6.         {
  7.             if (!Page.IsPostBack)
  8.             {
  9.                 con.Open();
  10.                 SqlCommand myCommand = new SqlCommand(cmdText, con);
  11.                 SqlDataAdapter dd = new SqlDataAdapter(myCommand);
  12.                 dd.Fill(ds);
  13.                 AddTree(-1, (TreeNode)null);//-1根据你根节点的父节点而定
  14.             }
  15.         }
  16.         public void AddTree(int ParentID, TreeNode pNode)
  17.         {
  18.             DataView dvTree = new DataView(ds.Tables[0]);
  19.             //过滤ParentID,得到当前的所有子节点   
  20.             dvTree.RowFilter = "[Tpid]   =" + ParentID;
  21.             foreach (DataRowView Row in dvTree)
  22.             {
  23.                 TreeNode Node = new TreeNode();
  24.                 if (pNode == null)
  25.                 {         //添加根节点   
  26.                     Node.Text = Row["TypeName"].ToString();//名字
  27.                     Node.Target = "mainFrame";
  28.                     Node.NavigateUrl = "knowledge/kdshow.aspx?TID=" + Row["Tid"].ToString();
  29.                     TreeView1.Nodes.Add(Node);//添加节点
  30.                     Node.Expanded = true;//是否展开
  31.                     AddTree(Int32.Parse(Row["Tid"].ToString()), Node); //再次递归   
  32.                 }
  33.                 else
  34.                 {   //添加当前节点的子节点   
  35.                     Node.Text = Row["TypeName"].ToString();
  36.                     Node.Target = "mainFrame";
  37.                     Node.ImageUrl = "~/SystemAdmin/knowledge/Images/folder_go.png";
  38.                     Node.NavigateUrl = "knowledge/kdshow.aspx?TID=" + Row["Tid"].ToString();
  39.                     pNode.ChildNodes.Add(Node);
  40.                     Node.Expanded = false;
  41.                     AddTree(Int32.Parse(Row["Tid"].ToString()), Node);           //再次递归   
  42.                 }
  43.             }
  44.         }
  45.  }
 
原创粉丝点击