当前位置 : 主页 > 网页制作 > css >

使用css和c#在母版页中以编程方式更改链接

来源:互联网 收集:自由互联 发布时间:2021-06-13
有人知道如何以编程方式更改子页面母版页中链接的ccs吗? 例如,我的主页中有一个(导航)链接列表,如下所示: div class="list-group" a href="report.aspx" class="list-group-item active"Donutstrade;/a a hr
有人知道如何以编程方式更改子页面母版页中链接的ccs吗?

例如,我的主页中有一个(导航)链接列表,如下所示:

<div class="list-group">
        <a href="report.aspx" class="list-group-item active">Donuts&trade;</a>
        <a href="english_responses.aspx" class="list-group-item">English responses</a>
        <a href="irish_responses.aspx" class="list-group-item">Irish responses</a>
    </div>

在导航列表中,我使用css类:list-group-item active来显示活动链接(活动时为蓝色)和css class:list-group-item用于普通链接.

我想要的是使用c#以编程方式更改每个子页面的活动链接.

有没有办法用page_load做到这一点?

你有几个选择:

>将一个runat =“服务器添加到您的锚标记中
>改为使用HyperLink控件

ASP:

<asp:HyperLink ID ="ReportHyperLink" 
               NavigateUrl ="report.aspx" 
               CssClass="list-group-item" runat="server" />

代码背后:

ReportHyperLink.CssClass= "list-group-item active";

cant seem to get the code behind to work if using in a masterpage ‘child’ page

你只需要找到控件

ASP:

<asp:ContentPlaceHolder ID="cpHolder" runat="server">              
<asp:HyperLink ID ="ReportHyperLink" 
               NavigateUrl ="report.aspx" 
               CssClass="list-group-item" runat="server" />
</asp:ContentPlaceHolder>

代码背后:

ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.FindControl("CpHolder");
HyperLink hp= (HyperLink)cp.FindControl("ReportHyperLink");
hp.CssClass= "list-group-item active";

也是一种更好的方法,您可以在母版页中添加公共属性,如下所示:

主人的代码背后:

public string ReportHyperLinkCssClass
{
    get {
        return this.ReportHyperLink.CssClass;
    }
    set {
        this.ReportHyperLink.CssClass= value;
    }
}

页面加载代码

var myMaster = this.Master as YourMasterType;
if(myMaster != null)
{
    myMaster.ReportHyperLinkCssClass = newCssClass;
}
网友评论