gpt4 book ai didi

asp.net - jquery 选项卡和 asp.net 母版页问题

转载 作者:行者123 更新时间:2023-12-01 01:20:42 25 4
gpt4 key购买 nike

我有一个包含母版页和内容页的网站。母版页的代码是:

    <%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site.master.vb" Inherits="ProjectX1.Site" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link href="css/ui-lightness/jquery-ui-1.8.18.custom.css" rel="stylesheet" type="text/css" />
</head>
<body style="height: 800px">
<form id="form1" runat="server">
<div id="TopNav">
<ul>
<li><a href="TopDeals.aspx">Top Deals</a></li>
<li><a href="AllDeals.aspx">All Deals</a></li>
<li><a href="Account.aspx">Account</a></li>
<li>
<asp:TextBox ID="SearchBox" runat="server"></asp:TextBox>
<asp:Button ID="Search" runat="server" Text="Search" />
</li>
</ul>
</div>
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
<!--Adding jQuery-->
<script src="scripts/jquery/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="scripts/jquery/jquery-ui-1.8.18.custom.min.js" type="text/javascript"></script>
<!--JavaScript and jQuery functions-->
<script type="text/javascript">
$(document).ready(function () {
$("#TopNav").tabs();
});
</script>
</body>
</html>

我的内容页面是这样的:
<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="TopDeals.aspx.vb" Inherits="ProjectX1.TopDeals" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
Top deals page.
</asp:Content>

现在,标签完美呈现,但标签内使用的文本或
  • 部分在每个选项卡内容中再次显示。

    它如何渲染的屏幕截图:
    enter image description here

    这是呈现的 HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head><title>



    </title>

    <link href="css/style.css" rel="stylesheet" type="text/css" /><link href="css/ui-lightness/jquery-ui-1.8.18.custom.css" rel="stylesheet" type="text/css" /></head>

    <body style="height: 800px">

    <form method="post" action="TopDeals.aspx" id="form1">

    <div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NDU2MTA1MmRkc9+hm0xMYZPW5kzqPGh5scwv9zQtVHHjF3TK0OClx8M=" />

    </div>



    <div class="aspNetHidden">



    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLG75v1DwKuh5WeCAKF1vrqBsex0rMLZ1SKDXK1SSR/NgIGfr4ldbcVrFvXw7cqxVna" />

    </div>

    <div id="TopNav">

    <ul>

    <li><a href="TopDeals.aspx">Top Deals</a></li>

    <li><a href="AllDeals.aspx">All Deals</a></li>

    <li><a href="Account.aspx">Account</a></li>

    <li>

    <input name="ctl00$SearchBox" type="text" id="SearchBox" />

    <input type="submit" name="ctl00$Search" value="Search" id="Search" />

    </li>

    </ul>

    </div>

    <div>



    Top deals page.



    </div>

    </form>

    <!--Adding jQuery-->

    <script src="scripts/jquery/jquery-1.7.1.min.js" type="text/javascript"></script>

    <script src="scripts/jquery/jquery-ui-1.8.18.custom.min.js" type="text/javascript"></script>

    <!--JavaScript and jQuery functions-->

    <script type="text/javascript">

    $(document).ready(function () {

    $("#TopNav").tabs();

    });

    </script>

    </body>

    </html>

    任何人都可以告诉我在这里做错了什么?
  • 最佳答案

    您看到的行为是根据 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>

    注意 li 上的本地引用 href和相应的标签内容 div(具有相同的 id)。

    如果使用 URL,则 jquery 选项卡将自动创建内容 div 并使用 AJAX 加载它们(通过 AJAX 示例查看内容 - http://jqueryui.com/demos/tabs/#ajax)。

    您的代码就是这种情况,您正在使用 urls - jquery 正在将 url 内容加载到选项卡中。因此,对于第一个选项卡,您可以看到 TopDeals.aspx 页面的内容 - 此页面使用相同的母版,因此选项卡标记出现在内容 div 中。

    编辑 : 解决方法

    首先,可用性专家不赞成通过选项卡打开新页面 - 检查 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>

    注意内容占位符的位置。现在,在每个页面中,您必须相应地调整事件的选项卡 href。例如,在 TopDeals.aspx 中,您必须在 page_load 或 page_prerender 中添加以下行:
    Tab1.HRef = "#TabContent";

    我建议不要使用硬编码的选项卡 ID 等,而是在母版页中使用中继器并从代码隐藏中填充它。这样,您可以公开 ActiveTab母版页中的属性(由内容页设置)将调整正确选项卡的 href。

    最后一部分是标签导航:见 this FAQ来自 jquery 选项卡,以便在单击其他选项卡时,浏览器将打开该页面(而不是通过 AJAX 加载内容)。

    编辑 : jquery 团队似乎删除了上述常见问题解答。要遵循标签 URL,需要处理选择事件 - 例如
    $('.tabs').tabs({
    select: function(event, ui) {
    var url = $.data(ui.tab, 'load.tabs');
    location.href = url; // follow url
    return false; // to disable default handling
    }
    });

    关于asp.net - jquery 选项卡和 asp.net 母版页问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9459991/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com