none
怎样让当前页面的对应的链接粗体显示? RRS feed

  • 问题

  • 我把一些共同部分抽取到母板里面了,原来是html静态页面,静态页面里的做法是给点击到的页面加CSS样式就可以了,现在我想把这个教给asp.net去判断,即,加入点链接a,那么出现a页面的内容,a链接显示粗体,切换到b页面,b链接粗体,同理,请问这样的代码改怎么写,谢谢,我的部分代码如下:
    <%@ Master Language="C#" MasterPageFile="~/GlobalPoint.master" AutoEventWireup="false" CodeFile="Support.master.cs" Inherits="support_Support" %>

    <asp:Content ID="SupportPage" ContentPlaceHolderID="MainContent" Runat="Server">
      <div class="cleft">
        <div class="leftContent">
            <h3>Support</h3>
            <div class="ptitle">
                <p><a href="networkResources.aspx">Network Resources</a>                            //这里就是需要处理的链接
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="desktop.aspx">Windows Desktop</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="windowsServers.aspx">Windows Servers</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="exchangeServer.aspx">Exchange Server</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="development.aspx">Development</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="backup.aspx">Backup Resources</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="antivirus.aspx">Antivirus Tools</a>
                <img src="../image/underLine.png" alt="" /></p>
            </div>
        </div>
      </div>
      <asp:ContentPlaceHolder ID="Support" runat="server" />
    </asp:Content>
    • 已移动 孟宪会Moderator 2009年9月24日 13:29 (发件人:.NET Framework 一般性问题讨论区)
    2009年9月24日 5:24

答案

  • 公共导航应该是放在Masterpage里面的吧。当然下面的代码放内容页是可以的

    <%@ Master Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
      protected void Page_Load(object sender, EventArgs e)
      {
        String url = Request.FilePath;
        url = url.Substring(url.LastIndexOf("/")+1).ToLower();
        for(int i = 1;i<3;i++)
        {
          HyperLink h = (HyperLink)this.Nav.FindControl("Link" + i);
          if (h != null)
          {
            if (h.NavigateUrl.ToLower().IndexOf(url) > -1) h.Font.Bold=true;
          }
        }
      }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <asp:ContentPlaceHolder ID="head" runat="server">
      </asp:ContentPlaceHolder>
    </head>
    <body id="body" runat="server">
      <form id="form1" runat="server">
      <asp:Panel ID="Nav" runat="server">
        <asp:HyperLink ID="Link1" runat="server" NavigateUrl="Default4.aspx">测试1</asp:HyperLink>
        <asp:HyperLink ID="Link2" runat="server" NavigateUrl="desktop2.aspx">测试2</asp:HyperLink>
        </asp:Panel>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
      </div>
      </form>
    </body>
    </html>
    


    【孟子E章】
    2009年9月24日 6:18
    版主
  • 在模板页中添加一个css的类 里边把字体设置为粗体,然后在<a 添加时间 onclick 当点击后 在处理函数中把当前的class设置为刚才添加的那个css 把其它的<a的class去掉


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月24日 6:38
    版主

全部回复

  • 我把一些共同部分抽取到母板里面了,原来是html静态页面,静态页面里的做法是给点击到的页面加CSS样式就可以了,现在我想把这个教给asp.net 去判断,即,加入点链接a,那么出现a页面的内容,a链接显示粗体,切换到b页面,b链接粗体,同理,请问这样的代码改怎么写,谢谢,我的部分代码如下:
    <%@ Master Language="C#" MasterPageFile="~/GlobalPoint.master" AutoEventWireup="false" CodeFile="Support.master.cs" Inherits="support_Support" %>

    <asp:Content ID="SupportPage" ContentPlaceHolderID="MainContent" Runat="Server">
      <div class="cleft">
        <div class="leftContent">
            <h3>Support</h3>
            <div class="ptitle">
                <p><a href="networkResources.aspx">Network Resources</a>                            //这里就是需要处理的链接
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="desktop.aspx">Windows Desktop</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="windowsServers.aspx">Windows Servers</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="exchangeServer.aspx">Exchange Server</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="development.aspx">Development</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="backup.aspx">Backup Resources</a>
                <img src="../image/underLine.png" alt="" /></p>
                <p><a href="antivirus.aspx">Antivirus Tools</a>
                <img src="../image/underLine.png" alt="" /></p>
            </div>
        </div>
      </div>
      <asp:ContentPlaceHolder ID="Support" runat="server" />
    </asp:Content>
    2009年9月24日 5:31
  • 如果放在服务器端处理,最好做成服务器控件,这样比较好遍历对比。
    【孟子E章】
    2009年9月24日 5:50
    版主
  • 我刚学.net,放服务端大致写法是<asp:HyperLink/>对吗
    问题是怎样实现我的效果呢
    2009年9月24日 6:01
  • 公共导航应该是放在Masterpage里面的吧。当然下面的代码放内容页是可以的

    <%@ Master Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
      protected void Page_Load(object sender, EventArgs e)
      {
        String url = Request.FilePath;
        url = url.Substring(url.LastIndexOf("/")+1).ToLower();
        for(int i = 1;i<3;i++)
        {
          HyperLink h = (HyperLink)this.Nav.FindControl("Link" + i);
          if (h != null)
          {
            if (h.NavigateUrl.ToLower().IndexOf(url) > -1) h.Font.Bold=true;
          }
        }
      }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <asp:ContentPlaceHolder ID="head" runat="server">
      </asp:ContentPlaceHolder>
    </head>
    <body id="body" runat="server">
      <form id="form1" runat="server">
      <asp:Panel ID="Nav" runat="server">
        <asp:HyperLink ID="Link1" runat="server" NavigateUrl="Default4.aspx">测试1</asp:HyperLink>
        <asp:HyperLink ID="Link2" runat="server" NavigateUrl="desktop2.aspx">测试2</asp:HyperLink>
        </asp:Panel>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
      </div>
      </form>
    </body>
    </html>
    


    【孟子E章】
    2009年9月24日 6:18
    版主
  • 在模板页中添加一个css的类 里边把字体设置为粗体,然后在<a 添加时间 onclick 当点击后 在处理函数中把当前的class设置为刚才添加的那个css 把其它的<a的class去掉


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月24日 6:38
    版主
  • 我没有调出来,我的部分代码如下

    <%@ Master Language="C#" MasterPageFile="~/GlobalPoint.master" AutoEventWireup="false" CodeFile="Support.master.cs" Inherits="support_Support" %>

    <asp:Content ID="SupportPage" ContentPlaceHolderID="MainContent" Runat="Server">
      <form id="form1" runat="server">
      <div class="cleft">
        <div class="leftContent">
            <h3>Support
          </h3>
            <div class="ptitle">
              <asp:Panel ID="SupportPanel" runat="server">
                  <p><asp:HyperLink ID="Link1" runat="server" NavigateUrl="networkResources.aspx" Text="Network Resources" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link2" runat="server" NavigateUrl="desktop.aspx" Text="Windows Desktop" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link3" runat="server" NavigateUrl="windowsServers.aspx" Text="Windows Servers" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link4" runat="server" NavigateUrl="exchangeServer.aspx" Text="Exchange Server" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link5" runat="server" NavigateUrl="development.aspx" Text="Development" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link6" runat="server" NavigateUrl="backup.aspx" Text="Backup Resources" />
                  <img src="../image/underLine.png" alt="" /></p>
                  <p><asp:HyperLink ID="Link7" runat="server" NavigateUrl="antivirus.aspx" Text="Antivirus Tools" />
                  <img src="../image/underLine.png" alt="" /></p>
                </asp:Panel>
            </div>
        </div>
      </div>
      <asp:ContentPlaceHolder ID="Support" runat="server" >
      </asp:ContentPlaceHolder>
      </form>
    </asp:Content>




    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Xml.Linq;

    public partial class support_Support : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String url = Request.FilePath;
            url = url.Substring(url.LastIndexOf("/") + 1).ToLower();
            for (int i = 1; i < 8; i++)
            {
                HyperLink h = (HyperLink)this.SupportPanel.FindControl("Link" + i);
                if (h != null)
                {
                    if (h.NavigateUrl.ToLower().IndexOf(url) > -1) h.Font.Bold = true;
                }
            }

        }
    }
    2009年9月24日 7:04
  • 请问版主,我的这个master上面再套了个总的master,这个是影响问题的本质吗,你的代码我试过可以
    2009年9月24日 9:23
  • 已在另外一个帖子解答,不要一帖多问,一问多贴
    【孟子E章】
    2009年9月24日 10:16
    版主