ASP.NET Repeater嵌套Repeater实现菜单加载
在KS系统中要实现从数据库中读取界面权限文件实现菜单、界面的动态加载。
效果图:
ASP.NET界面代码
<div id="menu-container"> <asp:Repeater ID="rpMenu" runat="server" onitemdatabound="rpMenu_ItemDataBound"> <ItemTemplate> <div class="menu-tit" id="MenuName"> <asp:HiddenField ID="hfMenuID" runat="server" Value='<%#Eval("Id") %>' /> <%#Eval("MenuName") %></div> <div class="menu-list"> <div class="top-line"> </div> <ul class="nav-items"> <asp:Repeater ID="rpWindows" runat="server"> <ItemTemplate> <li><a href='<%#Eval("WindowsURL") %>' target="content" id="WindwosName"><%#Eval("WindowsName") %></a></li> </ItemTemplate> </asp:Repeater> </ul> </div> </ItemTemplate> </asp:Repeater> </div>
C#界面后台代码
public partial class AdmWelcom : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strLike=""; DataBindMenu(strLike); } public void DataBindMenu(string strLike) { DataTable dtMenu= new DataTable(); AdmMenuManager admMenuManager = new AdmMenuManager(); //查询菜单 dtMenu = admMenuManager.QueryMenu(strLike); rpMenu.DataSource =dtMenu; rpMenu.DataBind(); } protected void rpMenu_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rpWindows = e.Item.FindControl("rpWindows") as Repeater; HiddenField hfMenuID=e.Item .FindControl ("hfMenuID") as HiddenField; DataTable dt = new DataTable(); string strLike = ""; BLL.AdmMenuManager admMenuManager = new AdmMenuManager(); string strMenuID = hfMenuID.Value.ToString().Trim() ; strLike = " TR_MenuWindows.MenuID='" + strMenuID + "'"; //查询界面下的窗体 dt = admMenuManager.QueryMenuWindows(strLike); rpWindows.DataSource = dt; rpWindows.DataBind(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架