如何使用 jquery 或 javascript 在 asp.net webforms masterpage 中激活当前菜单项

How do I make current menu item active in asp.net webforms masterpage using jquery or javascript

如何激活当前菜单

即如果我选择并转到该页面,则下拉菜单需要在 asp .net c#.

中动态激活(<li class="active treeview">

我想在 c# 中使用 jquery 或 javascript。

母版页中所有左侧下拉列表都可用。

      <li class="treeview" id="settingId" runat="server">
                            <a href="#">
                                <i class="fa fa-files-o"></i>
                                <span>SETTING</span>

                            </a>
                            <ul class="treeview-menu">
                                <li><a href=""><i class="fa fa-circle-o"></i>CATEGORY MANAGEMENT</a></li>
                                <li><a href=""><i class="fa fa-circle-o"></i>ADD CATEGORY</a></li>
                                <li><a href=""><i class="fa fa-circle-o"></i>EMAIL MANAGEMENT</a></li>
                                <li><a href=""><i class="fa fa-circle-o"></i>CHANGE PASSWORD</a></li>
                            </ul>
                        </li>
 <li class="treeview" id="portfolioId" runat="server">
                        <a href="#">
                            <i class="fa fa-pie-chart"></i>
                            <span>PORTFOLIO</span>
                            <i class="fa fa-angle-left pull-right"></i>
                        </a>
                        <ul class="treeview-menu">
                            <li><a href=""><i class="fa fa-circle-o"></i>PROJECT MANAGEMENT</a></li>
                            <li><a href=""><i class="fa fa-circle-o"></i>ADD PROJECT</a></li>
                            <li><a href=""><i class="fa fa-circle-o"></i>PRODUCT MANAGEMENT</a></li>
                            <li><a href=""><i class="fa fa-circle-o"></i>ADD PRODUCT</a></li>
                        </ul>
                    </li>

您可以在包含当前选项卡(父 li)的 ID 的母版页中放置一个隐藏字段。然后在内容页面中设置该隐藏字段的值。

使用隐藏字段的值来确定要突出显示的选项卡。此代码假定父 ulid="MasterMenu" 没有 runat="server"。此外,隐藏字段具有 id="CurrentTab".

function highlightTab() {
    var currentTab;

    //Get the id of the current tab from the hidden field
    currentTab = $('#CurrentTab').val();

    if (currentTab !== null) {
        //Remove the active-treeview class from all top level li elements
        $('#MasterMenu').children('li').removeClass('active-treeview');

        //Set the active-treeview class to the current tab
        $('#' + currentTab).addClass('active-treeview');
    }
}

编辑:
下面是您将放置在母版页上的隐藏字段的示例。我通过添加 runat="server" 属性使其对后面的代码可用。当控件具有 runat="server" 时,.NET 将在呈现页面时重命名该 id。要停止此行为,以便您可以轻松访问 JavaScript 中的隐藏字段,请添加 ClientIDMode="static" 属性。

<asp:HiddenField id="CurrentTab" value="" runat="server" ClientIDMode="static" />

在您的内容页面的页面加载事件中,将该隐藏字段的值设置为您要为该页面突出显示的选项卡的 ID。

HiddenField currentTab;
currentTab = (HiddenField)this.Master.FindControl("CurrentTab");
currentTab.Value = "settingId";

在每个页面需要更改当前id(假设leftsidebar_settingId

  <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                debugger;
                //$('#leftsidebar_portfolioId').addClass('treeview');
                $('#leftsidebar_settingId').addClass('treeview active');
            });

        </script>