如何使用 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 的母版页中放置一个隐藏字段。然后在内容页面中设置该隐藏字段的值。
使用隐藏字段的值来确定要突出显示的选项卡。此代码假定父 ul
有 id="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>
如何激活当前菜单
即如果我选择并转到该页面,则下拉菜单需要在 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 的母版页中放置一个隐藏字段。然后在内容页面中设置该隐藏字段的值。
使用隐藏字段的值来确定要突出显示的选项卡。此代码假定父 ul
有 id="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>