Как добавить стиль из кода? - PullRequest
19 голосов
/ 05 января 2010

Я хочу добавить стиль A:Hover в элемент управления HyperLink из кода позади.

Я могу сделать так:

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

Но как добавить стили для A:Hover для элемента управления гиперссылкой? Нужно ли определять класс и связывать этот класс с этим элементом управления, если да, то как?

Ответы [ 8 ]

26 голосов
/ 05 января 2010

Вы можете использовать свойство 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";
10 голосов
/ 21 февраля 2013

Использование

HyperLink hlRow = new HyperLink();
hlRow.Attributes.Add("Style", "color:#000000");
5 голосов
/ 05 января 2010

Попробуйте это:

Разметка 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");
}
2 голосов
/ 22 июня 2011

Также убедитесь, что на странице aspx есть AutoEventWireup="true", а не AutoEventWireup="false"

2 голосов
/ 05 января 2010

:hover - это селектор, а не стиль. В вашем примере вы добавляете встроенные стили к элементу, и эквивалентный селектор для этого, очевидно, не имеет большого смысла.

Вы можете добавить класс к своей ссылке: hlRow.CssClass = 'abc'; И определите свой класс как таковой:

a.abc:hover {
    ...
}
1 голос
/ 14 февраля 2014

Если файл недоступен для загрузки, мне нужно было отключить asp: linkButton, изменить его на серый и устранить подчеркивание при наведении курсора. Это сработало:

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

LinkButton button = item.FindControl("lnkFileDownload") as LinkButton;
button.Enabled = false;
button.CssClass = "disabled";
0 голосов
/ 24 марта 2018

попробуйте это

 lblMsg.Text = @"Your search result for <b style=""color:green;"">" + txtCode.Text.Trim() + "</b> ";
0 голосов
/ 05 января 2010

Вы не можете.

Так что просто не применяйте стили напрямую, примените класс "foo", а затем определите это в своей спецификации CSS:

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