关于ASP.NET中TreeView用法的一个小例子

下面是一个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);
       unity3d http://www.unitymanual.com/

专注于为中小企业提供成都网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业团风免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

        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;
           }
       }
   }


}


网页名称:关于ASP.NET中TreeView用法的一个小例子
链接地址:http://myzitong.com/article/jhehho.html