如何从代码中添加样式?

时间:2010-01-05 08:11:09

标签: c# asp.net css hyperlink

我想从后面的代码向HyperLink控件添加样式A:Hover

我可以这样做:

HyperLink hlRow = new HyperLink();
hlRow.Style.Add("color", "#000000");
hlRow.Style.Add("text-decoration", "none");

但是如何为超链接控件添加A:Hover的样式? 我是否需要定义一个类并将该类与此控件关联,如果是,如何?

8 个答案:

答案 0 :(得分:26)

您可以使用超链接的CssClass属性:

LiteralControl ltr = new LiteralControl();
        ltr.Text = "<style type=\"text/css\" rel=\"stylesheet\">" +
                    @".d
                    {
                        background-color:Red;
                    }
                    .d:hover
                    {
                        background-color:Yellow;
                    }
                    </style>
                    ";
        this.Page.Header.Controls.Add(ltr);
        this.HyperLink1.CssClass = "d";

答案 1 :(得分:10)

使用

HyperLink hlRow = new HyperLink();
hlRow.Attributes.Add("Style", "color:#000000");

答案 2 :(得分:5)

试试这个:

Html标记

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#">HyperLink</asp:HyperLink>

<强>代码

using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;

protected void Page_Load(object sender, EventArgs e)
{
    Style style = new Style();
    style.ForeColor = Color.Green;
    this.Page.Header.StyleSheet.CreateStyleRule(style, this, "#" + HyperLink1.ClientID + ":hover");
}

答案 3 :(得分:2)

:hover是选择器,而不是样式。你在你的例子中所做的是为一个元素添加内联样式,而一个等效的选择器显然没有多大意义。

您可以在链接中添加课程:hlRow.CssClass = 'abc'; 并定义您的课程:

a.abc:hover {
    ...
}

答案 4 :(得分:2)

还要确保aspx页面有AutoEventWireup="true"而不是AutoEventWireup="false"

答案 5 :(得分:1)

如果没有可供下载的文件,我需要禁用asp:linkBut​​ton,将其更改为灰色并消除悬停上的下划线。这很有效:

.disabled {
    color: grey;
    text-decoration: none !important;
}

LinkButton button = item.FindControl("lnkFileDownload") as LinkButton;
button.Enabled = false;
button.CssClass = "disabled";

答案 6 :(得分:0)

你不能。

所以不要直接应用样式,并应用类“foo”,然后在CSS规范中定义:

a.foo { color : orange; }
a.foo:hover { font-weight : bold; }

答案 7 :(得分:-2)

试试这个

 lblMsg.Text = @"Your search result for <b style=""color:green;"">" + txtCode.Text.Trim() + "</b> ";