各位老大,大家好,小弟我遇到了一个非常让我头痛的问题,希望大家能帮帮我我用了jquery ui theme里面的tab做了一个导航navigation bar之类的东西,不同的tab连接不同的页面,可是问题出来了,我在master page里面写的,问题如下:1.无论我点哪个tab,tab按下去的效果始终都是在home,虽然内容改变
2. 虽然内容改变了,但是是超过了那个tab以内的框框,不能上传图片,我很郁闷,不知道你们知不知道我讲什么,希望看代码能明白谢谢大家的帮忙了下面是我的代码master page的代码<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage_MasterPage" %><!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>Welcome to I Love Pet Canada</title>
    <link href="../Style/Site.css" rel="stylesheet" type="text/css" />
    <%--JQuery ui theme component--%>
    <link rel="stylesheet" type="text/css" href="../Style/ui-lightness/jquery-ui-1.8.2.custom.css" />
    <script src="../Script/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="../Script/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#example").tabs({
                select: function (event, ui) {
                    var url = $.data(ui.tab, 'load.tabs');
                    if (url) {
                        location.href = url;
                        return false;
                    }
                    return true;
                }
            });
        });
        </script>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
    <style type="text/css">
        .style1
        {
            width: 201px;
            height: 91px;
            margin-top: 18px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <p>
        
        <img alt="" class="style1" src="../Image/logo1.png" /></p>
    <div class="tab_font">
是不是这些连接写错了呢,因为我把不同的页面(包括master page页)都分别规整到了不同的文件夹
        <div id="example">
                <ul>
                    <li><a href="/Home/Home.aspx" >Home</a></li>
                    <li><a href="../Providers/Providers.aspx">Providers</a></li>
                    <li><a href="../Supplies/Supplies.aspx">Supplies</a></li>
                    <li><a href="../Vet/Vet.aspx">Vet</a></li>
                    <li><a href="../ShowRoom/ShowRoom.aspx">ShowRoom</a></li>
                    <li><a href="../Contact/Contact.aspx">Contact</a></li>
                    <li><a href="../Admin/Admin.aspx">Admin</a></li>
                </ul>
            </div>
        <asp:ContentPlaceHolder id="body" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>其中一个页面的代码,我测试,所以放了一个h1 home的文字,也就是问题2,这个Home文字不再那个tab下面的框框里,而是在框框外面。<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="Home.aspx.cs" Inherits="Home_Home" %><script runat="server">
    
</script><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
<h1>Home</h1>
</asp:Content>

解决方案 »

  1.   

    1. 图片问题非常好解决<img runat="server" src="~/images/ad468x60.gif" alt="" />加上runat="server" ,路径使用绝对路径~/基本上就OK了。2. CSS文件引用<link rel="stylesheet" type="text/css" href="style.css" />这里神奇的就是link的文件的href是随着被访问文件的目录结构自动调整,说白了就考虑母版页引用的路径就可以了,其他不用费心。比如在母版页同目录下的一个文件夹内的一个xxx.aspx引用的母版页,那么上面的语句在客户端就自动变为<link rel="stylesheet" type="text/css" href="../style.css" />前提就是<head runat="server"></head>必须有runat="server" 3.  JS文件的引用<script type="text/javascript" src="menu/jquery.min.js"></script>这样的话在其他目录下的页面文件,客户端肯定就引用不到了那么你需要这样处理<script type="text/javascript" src='<%=ResolveUrl("menu/jquery.min.js")%>'></script><script type="text/javascript" src='<%=ResolveClientUrl("menu/ddsmoothmenu.js")%>'></script>这是2种方式,在客户端的路径当然也会不一样,分别是:<script type="text/javascript" src='/TLERP/menu/jquery.min.js'></script><script type="text/javascript" src='../menu/ddsmoothmenu.js'></script>那么很明显ResolveClientUrl是相对路径,是比较好用的,当然ResolveUrl也有很多地方需要这样的绝对路径,其中TLERP是web应用的名字。另外,如果你将这样的代码放在了<head>里面,将会报错:控件包含代码块(即 <% ... %>),因此无法修改控件集合。原因我不说了,你将引用的东西放在<body>里即可,哪怕是<body>和<form>之间。
      

  2.   

    楼上的这个老大可能没看懂我的问题,我的问题是在那个导航条,我无论点哪个,都是在home上,跟那个图片没什么关系,图片显示正常
      

  3.   

    1.无论我点哪个tab,tab按下去的效果始终都是在home,虽然内容改变点击后页面刷新吗?2. 虽然内容改变了,但是是超过了那个tab以内的框框,不能上传图片。不能上传图片 是什么意思??vip__888说很有道理 你在母版页中最好使用服务器的路径。包括js css 图片 等路径 全部使用服务器路径。可以使用 ResolveUrl。你先把路径写好后再试一试。
    一般用户控件和母版页中一定注意到路径的问题