表 UserInfo
ID ID
Name 导航名称
SuperiorID 上级导航ID
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
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.Xml.Linq;
using System.Data.SqlClient;
namespace Test
{
public partial class TreeviewBD : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindTree();
}
private void BindTree()
{
DataTable dt = sencondNMClass.GetList("").Tables[0];//获取数据源
int s = dt.Rows.Count;//
DataView dv = new DataView(dt);
dv.RowFilter = "SuperiorID=0";
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv["Name"].ToString();//显示的文本
node.Value = drv["ID"].ToString();//不显示的 文本 值
node.SelectAction = TreeNodeSelectAction.None;//不引发事件
//node.ImageUrl = "~/images/folder.GIF";//节点旁边显示的节点
node.Expanded = true;//是否展开节点
TreeView1.Nodes.Add(node);//添加到根节点
AddReplies(dt, node);//递归函数
}
}
/// <summary>
/// TreeView
/// </summary>
/// <param name="dt"></param>
/// <param name="node"></param>
protected void AddReplies(DataTable dt, TreeNode node)
{
DataView dv = new DataView(dt);
dv.RowFilter = "SuperiorID='" + node.Value + "'";//过滤 node。Value 为上级的treeNode 值
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();//新建一个节点
replyNode.Text = row["Name"].ToString();//显示的文本
replyNode.Value = row["ID"].ToString();//不显示的 文本 值
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);//添加到子节点
AddReplies(dt, replyNode);//继续递归函数
}
}
}
}
注:使用AddReplies递归函数时应注意节点的设置AddReplies(dt, replyNode)
HTML页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TreeviewBD.aspx.cs" Inherits="Test.TreeviewBD" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server">
</asp:TreeView>
</div>
</form>
</body>
</html>