using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TreeViewWeb
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeView1.ExpandDepth = 0;
Bind_tv(Text_Table(), TreeView1.Nodes, null, "id", "parent_id", "name");
}
}
protected void Bind_tv(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text)
{
DataView dv = new DataView(dt);
TreeNode tn;
String filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
dv.RowFilter = filter;
foreach (DataRowView drv in dv)
{
tn = new TreeNode();
tn.Value = drv[id].ToString();
tn.Text = drv[text].ToString();
tnc.Add(tn);
Bind_tv(dt, tn.ChildNodes, tn.Value, id, pid, text);//递归调用
}
}
//数据表
private DataTable Text_Table()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("id", typeof(Guid)));
dt.Columns.Add(new DataColumn("parent_id", typeof(Guid)));
dt.Columns.Add(new DataColumn("name", typeof(string)));
dr = dt.NewRow();
var node0 = dr[0] = Guid.NewGuid();
dr[1] = DBNull.Value;
dr[2] = "**公司";
dt.Rows.Add(dr);
string[] department = { "A部门", "B部门", "C部门" };
for (int i = 0; i < department.Length; i++)
{
dr = dt.NewRow();
var node1 = dr[0] = Guid.NewGuid();
dr[1] = node0;
dr[2] = department[i];
dt.Rows.Add(dr);
for (int j = 1; j < 4; j++)
{
dr = dt.NewRow();
dr[0] = Guid.NewGuid();
dr[1] = node1;
dr[2] = j + "班组";
dt.Rows.Add(dr);
}
}
return dt;
}
}
}