数据库表结构为:
表名: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);
}
}