数据库表结构为:
表名:treeTable
字段:L_ID:主键ID
L_Name:树中显示的菜单名
P_L_ID:属于某个菜单
L_Page:导向路径
L_PageName:文件名
示例数据:
L_ID |
L_Name |
P_L_ID |
L_Page |
L_PageName |
1 |
根1 |
0 |
..... |
|
2 |
根2 |
0 |
...... |
|
3 |
子11 |
1 |
... |
|
4 |
子12 |
1 |
|
|
5 |
子13 |
1 |
|
|
6 |
子21 |
2 |
|
//初始化树形菜单
private void DataBindTree()
{
DataConn dc=new DataConn (SpecialClass.strConn); //在这里做数据连接,改为你自己的连接就可以了
DataTable dt=new DataTable ();
//查询表中数据,构造成DataTable
dt=dc.GetDataTable("select L_ID,L_Name,P_L_ID,(L_Page+L_PageName) as URLPath from treeTable");
InitTree(this.UltraWebTree1.Nodes,"0",dt);
//展开树
tvwItems.ExpandAll();
}
private void InitTree(Infragistics.WebUI.UltraWebNavigator.Nodes Nds,string pID,DataTable data)
{
Infragistics.WebUI.UltraWebNavigator.Node tmpNd;
DataRow [] rows = data.Select("P_L_ID='" + pID + "'");
foreach(DataRow row in rows)
{
tmpNd = new Infragistics.WebUI.UltraWebNavigator.Node();
tmpNd.DataKey = row["L_ID"].ToString(); //ID
tmpNd.Text = row["L_Name"].ToString(); //结点名称
tmpNd.TargetUrl=row["URLPath"].ToString(); //路径+页面
tmpNd.TargetFrame="main"; //导向的目标框架
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes, tmpNd.DataKey.ToString(),data);
}
}
private void DataBindTree()
{
DataConn dc=new DataConn (SpecialClass.strConn); //在这里做数据连接,改为你自己的连接就可以了
DataTable dt=new DataTable ();
//查询表中数据,构造成DataTable
dt=dc.GetDataTable("select L_ID,L_Name,P_L_ID,(L_Page+L_PageName) as URLPath from treeTable");
InitTree(this.UltraWebTree1.Nodes,"0",dt);
//展开树
tvwItems.ExpandAll();
}
private void InitTree(Infragistics.WebUI.UltraWebNavigator.Nodes Nds,string pID,DataTable data)
{
Infragistics.WebUI.UltraWebNavigator.Node tmpNd;
DataRow [] rows = data.Select("P_L_ID='" + pID + "'");
foreach(DataRow row in rows)
{
tmpNd = new Infragistics.WebUI.UltraWebNavigator.Node();
tmpNd.DataKey = row["L_ID"].ToString(); //ID
tmpNd.Text = row["L_Name"].ToString(); //结点名称
tmpNd.TargetUrl=row["URLPath"].ToString(); //路径+页面
tmpNd.TargetFrame="main"; //导向的目标框架
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes, tmpNd.DataKey.ToString(),data);
}
}