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

  

复制代码 代码如下:

  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;

  }

  }

  }

  }