2010-01-05 55 views
18

我想從後面的代碼中將風格A:Hover添加到HyperLink控件。如何從代碼後面添加樣式?

我可以這樣做:

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

但我怎麼可以添加樣式A:Hover超鏈接控制? 我是否需要定義一個類並將該類與此控件相關聯,如果是的話,該怎麼辦?

回答

2

:hover是一個選擇器,而不是一種風格。在你的例子中你正在做的是將內聯樣式添加到元素,而選擇器相當於這一點顯然沒有多大意義。

您可以將類添加到您的鏈接:hlRow.CssClass = 'abc'; 並定義類這樣:

a.abc:hover { 
    ... 
} 
+0

哈弗是一個僞類,而不是一個選擇;這是一個選擇器:'ul li a {...}' – roosteronacid 2010-01-05 08:21:11

+1

好的,*選擇器的一部分就是我的意思:仍然在試圖將它添加到元素是沒有意義的,因爲它相當習慣*查找*匹配元素。但是,是的,謝謝你的評論 – 2010-01-05 08:24:42

+0

嘿傢伙們,我有一個後續問題,如果我有一個菜單項在aspx代碼,我想分配給他的CSS類。 我怎麼能達到這個屬性,這是一個webcontrol屬性,並從MenuItem控件丟失?即時通訊嘗試做一個簡單的事情,即爲「選定」模式創建樣式...因此,用戶將知道哪個頁面是當前活動頁面。任何方式來實現這一目標? – 2010-10-05 06:37:06

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"; 
+0

謝謝。順便說一句,我有aspx頁面,我可以直接寫在那裏的CSS類,而不是使用LiteralControl!:-) – Manish 2010-01-05 10:13:54

+0

我很樂意爲你效勞,但由於一些瘋狂的原因,我的投票限制達到了「今天」(今天不是我的,而是今天的美國),所以我不能。所以我會留下這個評論。也許當我禁止投票時,我可以記住這個帖子,並回來投票:) – 2010-01-05 10:34:35

+1

謝謝你非常柔滑。祝你好運。 – 2010-01-05 11:45:00

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"); 
} 
+0

他他......非常棘手的一個.. !! – Manish 2010-01-05 10:32:14

0

你不能。

所以只要不直接應用樣式像,並應用類「富」,然後定義你的CSS規範:

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

還要確保aspx頁面有AutoEventWireup="true",而不是AutoEventWireup="false"

9

使用

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

如果沒有可供下載的文件,我需要禁用ASP:LinkBut​​ton的,將其更改爲灰色,消除underl在徘徊。這工作:

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

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