前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TreeView._Default" %>
<!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" ShowLines="True">
</asp:TreeView>
</div>
</form>
</body>
</html>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace TreeView
{
public partial class _Default : System.Web.UI.Page
{
public static string st = ConfigurationManager.ConnectionStrings["sql"].ToString();
private DataTable dts=new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dts = CreateTable();
CreateNode();
}
}
public void CreateNode()
{
DataRow[] dr = dts.Select("ParentID=0");
if(dr.Length>0)
{
foreach(DataRow drr in dr)
{
TreeNode tn = new TreeNode();
tn.Value = drr["MenuID"].ToString();
tn.Text = drr["MenuName"].ToString();
tn.Expanded = false;
tn.SelectAction = TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(tn);
CreateChild(tn,dts);
}
}
else
{
TreeNode t=new TreeNode();
t.Value="空";
t.Text="空";
t.Expanded=false;
t.SelectAction=TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(t);
}
}
public void CreateChild(TreeNode tnn, DataTable dtt)
{
DataRow[] dr = dtt.Select("ParentID=" + tnn.Value);
if (dr.Length > 0)
{
foreach (DataRow drw in dr)
{
TreeNode ts = new TreeNode();
ts.Value = drw["MenuID"].ToString();
ts.Text = drw["MenuName"].ToString();
ts.SelectAction = TreeNodeSelectAction.Expand;
ts.Expanded = false;
tnn.ChildNodes.Add(ts);
CreateChild(ts, dtt);
}
}
}
public DataTable CreateTable()
{
DataTable d = new DataTable();
using(SqlConnection sql=new SqlConnection(st))
{
SqlCommand sq=new SqlCommand("select * from TreeViewName",sql);
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand = sq;
sda.Fill(d);
}
return d;
}
}
}