//使用tree实现无限级树形菜单
- //使用tree实现无限级树形菜单(单张表)
- SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["字符串"].ConnectionString);
- string cmdText = "SELECT * FROM CkType WHERE Flag='1'";//sql语句
- DataSet ds = new DataSet();
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!Page.IsPostBack)
- {
- con.Open();
- SqlCommand myCommand = new SqlCommand(cmdText, con);
- SqlDataAdapter dd = new SqlDataAdapter(myCommand);
- dd.Fill(ds);
- AddTree(-1, (TreeNode)null);//-1根据你根节点的父节点而定
- }
- }
- public void AddTree(int ParentID, TreeNode pNode)
- {
- DataView dvTree = new DataView(ds.Tables[0]);
- //过滤ParentID,得到当前的所有子节点
- dvTree.RowFilter = "[Tpid] =" + ParentID;
- foreach (DataRowView Row in dvTree)
- {
- TreeNode Node = new TreeNode();
- if (pNode == null)
- { //添加根节点
- Node.Text = Row["TypeName"].ToString();//名字
- Node.Target = "mainFrame";
- Node.NavigateUrl = "knowledge/kdshow.aspx?TID=" + Row["Tid"].ToString();
- TreeView1.Nodes.Add(Node);//添加节点
- Node.Expanded = true;//是否展开
- AddTree(Int32.Parse(Row["Tid"].ToString()), Node); //再次递归
- }
- else
- { //添加当前节点的子节点
- Node.Text = Row["TypeName"].ToString();
- Node.Target = "mainFrame";
- Node.ImageUrl = "~/SystemAdmin/knowledge/Images/folder_go.png";
- Node.NavigateUrl = "knowledge/kdshow.aspx?TID=" + Row["Tid"].ToString();
- pNode.ChildNodes.Add(Node);
- Node.Expanded = false;
- AddTree(Int32.Parse(Row["Tid"].ToString()), Node); //再次递归
- }
- }
- }
- }