整理思想:
(1) 先读取根节点;
(2) 读取根节点的所有子节点;
(3) 如此循环(2)即可;
/// <summary>
/// 加载商品分类到树
/// </summary>
/// <param name="tvMenu"></param>
public void LoadProductCategorysToTree(TreeView tvMenu)
{
DataTable dtAgentInfo = null;
dtAgentInfo =CreateDataTable(" select * from ProductCategory ");
//添加根结点
tvMenu.Nodes.Clear();
TreeNode newNode = new TreeNode();
newNode.Text = "商品分类";
newNode.Value = "0";
newNode.NavigateUrl = "javascript:void(0);";
tvMenu.Nodes.Add(newNode);
LoadMenu(tvMenu.Nodes[0].ChildNodes, "0",dtAgentInfo);
}
/// <summary>
/// 加载子级
/// </summary>
/// <param name="Nodes"></param>
/// <param name="ParentAgentID"></param>
public void LoadMenu(TreeNodeCollection Nodes, string ParentAgentID, DataTable dtAgentInfo)
{
dtAgentInfo.DefaultView.RowFilter = "ParentID=" + ParentAgentID;
for (int i = 0; i < dtAgentInfo.DefaultView.Count; i++)
{
TreeNode newNode = new TreeNode();
newNode.Text = dtAgentInfo.DefaultView[i]["CategoryName"].ToString();
newNode.Value = dtAgentInfo.DefaultView[i]["ProductCategoryID"].ToString();
newNode.NavigateUrl = "javascript:getProducts('" + newNode.Value + "');"; //--写的一个JS函数,实现跳转到相关页面;
Nodes.Add(newNode);
}
for (int i = 0; i < Nodes.Count; i++)
{
LoadMenu(Nodes[i].ChildNodes, Nodes[i].Value,dtAgentInfo);
}
}