数据库表结构为:
表名: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 |
....... |
...... |
//数据绑定左边web菜单
privatevoidDataBindWebList()
...{
DataConndc=newDataConn(SpecialClass.strConn);
DataTabledt=newDataTable();
dt=dc.GetDataTable("selectL_ID,L_Name,P_L_ID,(L_Page+L_PageName)asURLPathfromtreeTable");
InitWebListGroup(this.wlbLeft.Groups,"0",dt);
}
//添加组
privatevoidInitWebListGroup(Infragistics.WebUI.UltraWebListbar.GroupsGps,stringpID,DataTabledata)
...{
Infragistics.WebUI.UltraWebListbar.GrouptmpGp;
DataRow[]rows=data.Select("P_L_ID=0");
foreach(DataRowrowinrows)
...{
tmpGp=newInfragistics.WebUI.UltraWebListbar.Group();
tmpGp.Key=row["L_ID"].ToString();
tmpGp.Text=row["L_Name"].ToString();
Gps.Add(tmpGp);
InitWebListItems(tmpGp.Items,tmpGp.Key.ToString(),data);
tmpGp.TextAlign="Center";
}
}
//添加组成员
privatevoidInitWebListItems(Infragistics.WebUI.UltraWebListbar.Itemsitems,stringpID,DataTabledata)
...{
Infragistics.WebUI.UltraWebListbar.Itemitem;
DataRow[]rows=data.Select("P_L_ID='"+pID+"'");
foreach(DataRowrowinrows)
...{
item=newInfragistics.WebUI.UltraWebListbar.Item();
item.Key=row["L_ID"].ToString();
item.Text=row["L_Name"].ToString();
item.TargetUrl=row["URLPath"].ToString();
item.TargetFrame="main";
items.Add(item);
}
}
本文介绍了一种基于树状结构的数据表设计及其在Web应用中的数据绑定方法。通过使用L_ID、L_Name等字段构建树形结构,并利用C#代码实现菜单项的递归加载及展示。
370

被折叠的 条评论
为什么被折叠?



