You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AdminLTE 3 选中下拉菜单子项时如何激活父菜单与当前子项样式

解决AdminLTE 3侧边栏选中View Enquiry时的展开高亮方案

提供两种适配不同技术场景的实现方式:

方案1:前端JS实现(通用无后端依赖)

页面加载时检测当前路径,匹配到View Enquiry页面自动添加对应样式类:

// 等待DOM加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
  // 判断当前页面是否为View Enquiry页
  if (window.location.pathname.includes('/Enquiry/ViewEnquiry.aspx')) {
    // 父级菜单添加展开类
    const parentMenu = document.getElementById('liStaff_Enquiry');
    parentMenu.classList.add('menu-is-opening', 'menu-open');
    // 子菜单添加高亮类
    const activeItem = document.getElementById('aStaff_aViewEnquiry');
    activeItem.classList.add('active');
  }
})
  • 注意:如果代码执行时机晚于AdminLTE treeview插件初始化,可将代码放在页面底部</body>标签前执行即可。

方案2:ASP.NET服务端实现(适配现有runat="server"标记)

直接在ViewEnquiry.aspx的后台Page_Load事件中修改控件样式:

protected void Page_Load(object sender, EventArgs e)
{
    // 给父级li添加展开类
    liStaff_Enquiry.Attributes["class"] = "nav-item menu-is-opening menu-open";
    // 给当前选中的a标签添加高亮类
    aStaff_aViewEnquiry.Attributes["class"] = "nav-link active";
}

如果你把菜单写在了母版页(MasterPage)中,需要先通过FindControl获取母版页内的控件再修改属性,参考代码:

// 查找母版页中的父li控件
HtmlGenericControl parentMenu = (HtmlGenericControl)Master.FindControl("liStaff_Enquiry");
parentMenu.Attributes["class"] = "nav-item menu-is-opening menu-open";
// 查找母版页中的子a控件
HtmlAnchor activeItem = (HtmlAnchor)Master.FindControl("aStaff_aViewEnquiry");
activeItem.Attributes["class"] = "nav-link active";

内容的提问来源于stack exchange,提问作者Mani Rathinam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:15:03