数据表:
表一:(树的一级结点)
ProNumber ProName
1 nihao
2 tahao
3 wohao
4 hho
表二:(树的二级结点)
SonID name ProNumber
1 nihao 1
2 dajia 2
3 gsff 3
4 ddffg 4
5 ni 1
6 fffdg 2
7 3er 4
表三:(树的三级结点)
ID name SonID
1 trt 1
2 erer 2
3 rte 3
4 rtrt 4
5 erew 5
6 55 3
7 3343 2
//代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
namespace MyProject
{
/// <summary>
/// LeftTreeViewForm 的摘要说明。
/// </summary>
public class LeftTreeViewForm : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView InforTree;
protected DataSet ds1;
protected DataSet ds2;
protected DataSet ds3;
protected System.Web.UI.WebControls.Label Node_Infor;
//string str;
public string str;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
this.CreateTree();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.InforTree.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.SelectChange);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public void GetDs()
{
DataBaseOp db = new DataBaseOp();
db.ConnectionToDb();
ds1 = new DataSet();
ds2 = new DataSet();
ds3 = new DataSet();
string str1 = "select ProNumber,ProName from ProjectTable;";
ds1 = db.GetDataSet(str1);
this.ViewState["ds1"]=ds1;
string str2 = "select * from SonProjectTable;";
ds2 = db.GetDataSet(str2);
this.ViewState["ds2"]=ds2;
string str3 = "select *from ThirdProjectTable;";
ds3 = db.GetDataSet(str3);
this.ViewState["ds3"]=ds3;
}
public void BindRootData()
{
DataSet ds1=(DataSet)this.ViewState["ds1"];
DataView dv=new DataView(ds1.Tables[0]);
foreach(DataRowView row in dv)
{
Microsoft.Web.UI.WebControls.TreeNode nd = new Microsoft.Web.UI.WebControls.TreeNode();
nd.Text = row["ProName"].ToString();
nd.ID= row["ProNumber"].ToString();
//nd.Expanded = true;
InforTree.Nodes.Add(nd);
}
ds1.Clear();
}
public void BindSonData()
{
DataSet ds2=(DataSet)this.ViewState["ds2"];
DataView dv=new DataView(ds2.Tables[0]);
DataSet ds3=(DataSet)this.ViewState["ds3"];
DataView dv1=new DataView(ds3.Tables[0]);
foreach(DataRowView row in dv)
{
Microsoft.Web.UI.WebControls.TreeNode sonnode = new Microsoft.Web.UI.WebControls.TreeNode();
sonnode.Text = row["name"].ToString();
sonnode.ID= row["SonID"].ToString();
//sonnode.Expanded = true;
for(int i=0;i<InforTree.Nodes.Count;i++)
if(InforTree.Nodes[i].ID.Equals(row["ProNumber"].ToString()))
{
InforTree.Nodes[i].Nodes.Add(sonnode);
foreach(DataRowView row2 in dv1)
{ Microsoft.Web.UI.WebControls.TreeNode Grandnode = new Microsoft.Web.UI.WebControls.TreeNode();
if(row2["SonID"].ToString()==sonnode.ID)
{
Grandnode.Text = row2["name"].ToString();
Grandnode.ID = row2["ID"].ToString();
sonnode.Nodes.Add(Grandnode);
}
}
}
}
ds2.Clear();
ds3.Clear();
}
public void CreateTree()
{
this.GetDs();
this.BindRootData();
this.BindSonData();
}
private void SelectChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
//this.Node_Infor.Text = this.InforTree.Nodes[this.InforTree.SelectedNodeIndex.].Text;
this.Node_Infor.Text = this.InforTree.GetNodeFromIndex(this.InforTree.SelectedNodeIndex).Text;
this.Response.Write(this.Node_Infor.Text);
}
}
}