我有以下asp.net aspx代码
<asp:LinkButton CssClass="form-search" ID="LinkButtonSearch" runat="server">Search</asp:LinkButton>
<br />
<ul class="nav nav-tabs" id="myTab">
<li class="active"><a href="#home">Home</a></li>
<li><a href="#profile">Profile</a></li>
<li><a href="#messages">Messages</a></li>
<li><a href="#settings">Settings</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="home">home</div>
<div class="tab-pane" id="profile">profile</div>
<div class="tab-pane" id="messages">messages</div>
<div class="tab-pane" id="settings">settings</div>
</div>
当我单击LinkButton时,此脚本代码在回发事件后保持活动选项卡
<script>
$(document).ready( function(){
$('#myTab a').click(function (e) {
e.preventDefault()
$(this).tab('show')
});
// store the currently selected tab in the hash value
$("ul.nav-tabs > li > a").on("shown.bs.tab", function (e) {
var id = $(e.target).attr("href").substr(1);
window.location.hash = id;
});
// on load of the page: switch to the currently selected tab
var hash = window.location.hash;
$('#myTab a[href="' + hash + '"]').tab('show');
});
</script>
注意:只有当我重新加载当前页面时,此代码才能正常工作。保持当前选项卡的焦点。但是当您单击“链接”按钮时,它将带我返回默认选项卡。
如何使此代码也可用于任何控件的post back事件。
注意:我从堆栈帖子How do I keep the current tab active with twitter bootstrap after a page reload?中获取了此示例。此解决方案已发布于:@koppor。
任何帮助
最佳答案
不熟悉jQuery,因此遇到此问题时我寻求了一个asp.net解决方案。
我通过更改列表中的a href并替换为asp:linkbutton来解决了此问题。
然后我也去了包含选项卡的div,并向每个选项卡添加了runat =“ server”,还添加了ID =“ Tab1”和Tab2等。
然后在链接按钮后面的代码中,我添加了以下代码
Me.Tab1.Attributes("class") = "tab-pane active"
Me.Tab2.Attributes("class") = "tab-pane"
Me.Tab3.Attributes("class") = "tab-pane"
对于要激活的选项卡,请将属性更改为“激活的选项卡窗格”。
这样,当单击链接按钮时,只有要激活的选项卡才处于活动状态,并且在回发时,因为这些控件现在在服务器端,您将保留在激活的选项卡上。
关于javascript - asp.net bootstrap 回发事件后保持当前事件选项卡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22964301/