下面是一個Treeview動態的綁定3層深度的樹的代碼,有需要的朋友可以參考一下
代碼如下: using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Data.SqlClient; using Common; using DataAccess; public partial class Controls_ProductType2 : System.Web.UI.UserControl { ProductType productType = new ProductType(); Product product = new Product(); protected void TreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e) { if (e.Node.ChildNodes.Count == 0) { switch (e.Node.Depth) { case 0: PopulateCategories(e.Node); break; case 1: PopulateProductType(e.Node); break; case 2: PopulateProducts(e.Node); break; } } // int i = TreeToXml.TreeToXML(TreeView1, "D:/TreeToXML.xml"); } protected void Page_Load(object sender, EventArgs e) { } //第一級節點(parentID=0) void PopulateCategories(TreeNode node) { DataTable dt = new DataTable(); dt = productType.GetListByFatherNode(); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { TreeNode NewNode = new TreeNode(row["ProductTypeName"].ToString(), row["ProductTypeID"].ToString(),"","../WebProductList.aspx?productTypeIdOne="+ row["ProductTypeID"].ToString() +"",""); NewNode.PopulateOnDemand = true; NewNode.SelectAction = TreeNodeSelectAction.Expand; node.ChildNodes.Add(NewNode); node.Expanded = true ; } } } //第二級節點 void PopulateProductType(TreeNode node) { DataTable dt = new DataTable(); QueryParam queryparam = new QueryParam(); queryparam.Add("ParentID", QueryParam.RELATION.EQ, "" + node.Value + ""); dt = productType.GetListByBranchNode(queryparam); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { TreeNode NewNode = new TreeNode(row["ProductTypeName"].ToString(), row["ProductTypeID"].ToString(), "", "../WebProductList.aspx?productTypeIdTwo=" + row["ProductTypeID"].ToString() + "", ""); NewNode.PopulateOnDemand = true; NewNode.SelectAction = TreeNodeSelectAction.Expand; node.ChildNodes.Add(NewNode); node.Expanded = false ; } } } //第三個節點 void PopulateProducts(TreeNode node) { DataTable dt = new DataTable(); QueryParam queryparam = new QueryParam(); queryparam.Add("ProductTypeItemID", QueryParam.RELATION.EQ, "" + node.Value + ""); dt = product.GetList(queryparam); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { TreeNode NewNode = new TreeNode(row["ProductName"].ToString(), row["ProductID"].ToString(), "", "../WebProductDetaile.aspx?productID=" + row["ProductID"].ToString() + "", ""); //NewNode.PopulateOnDemand = false; //NewNode.SelectAction = TreeNodeSelectAction.None; NewNode.PopulateOnDemand =true ; NewNode.SelectAction = TreeNodeSelectAction.Expand ; node.ChildNodes.Add(NewNode); node.Expanded = false; } } } }