Поведение, которое вы видите, соответствует вкладкам jQuery - вы используете его неправильно.
Один из типичных сценариев сценария использования будет иметь разметку, например:
<div id="tabs">
<ul>
<li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li>
</ul>
<div id="tabs-1">
Tab 1 Content
</div>
<div id="tabs-2">
Tab 2 Content
</div>
</div>
Обратите внимание на локальные ссылкиhref на li
и соответствующий div содержимого вкладки (с тем же идентификатором).
В случае, если используются URL-адреса, вкладки jquery автоматически создадут div содержимого и загрузят его с помощью AJAX (см. содержимое через AJAX exaple - http://jqueryui.com/demos/tabs/#ajax).
Это касается вашего кода, вы используете URL-адреса - jquery загружает содержимое URL-адреса во вкладку. Итак, для первой вкладки вы можете увидеть содержимое страницы TopDeals.aspx - и этостраница использует тот же мастер и, следовательно, в разделе содержимого появляется разметка вкладки.
РЕДАКТИРОВАТЬ : обходной путь
Во-первых, при открытии новой страницы с помощью вкладки осуждаетсяэкспертами по юзабилити - отметьте http://www.useit.com/alertbox/tabs.html! Однако, чтобы достичь того, что вы хотите, вам нужно установить href активной вкладки для локальной ссылки.
Например, на главной странице
<div id="TopNav">
<ul>
<li><a href="TopDeals.aspx" runat="server" id="Tab1" >Top Deals</a></li>
<li><a href="AllDeals.aspx" runat="server" id="Tab2" >All Deals</a></li>
<li><a href="Account.aspx" runat="server" id="Tab3" >Account</a></li>
<li>
<asp:TextBox ID="SearchBox" runat="server"></asp:TextBox>
<asp:Button ID="Search" runat="server" Text="Search" />
</li>
</ul>
<div id="TabContent">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
Обратите вниманиеразмещение контента заполнителя.Теперь на каждой странице вы должны соответствующим образом настроить вкладку активного элемента.Например, в TopDeals.aspx вы должны добавить следующую строку, скажем, page_load или page_prerender:
Tab1.HRef = "#TabContent";
Вместо использования жестко закодированных идентификаторов вкладок и т. Д., Я бы предложил использовать Repeater на главной странице изаполнить его из-за кода.Таким образом, вы можете выставить свойство ActiveTab
на главной странице (устанавливается страницами содержимого), которое будет корректировать href правильной вкладки.
Наконец, последняя часть - это навигация по вкладкам: см. этот FAQ из вкладок jquery, чтобы при нажатии на другую вкладку браузер открывал эту страницу (вместо загрузки контента через AJAX).
EDIT : Похоже, что вышеупомянутые часто задаваемые вопросы были удалены jqueryкоманда.Чтобы перейти по URL-адресу вкладки, нужно обработать событие select - например,
$('.tabs').tabs({
select: function(event, ui) {
var url = $.data(ui.tab, 'load.tabs');
location.href = url; // follow url
return false; // to disable default handling
}
});