2013-03-07 45 views
4

我有這樣的背景下:我可以覆蓋UserControl中的css類嗎?

<asp:Panel ID="DescrizionePagina" CssClass="pagina-testo-box-large" runat="server">Text</asp:Panel> 

,我想用pagina-testo-box-small覆蓋類:

Panel myPanel = (Panel)this.Parent.FindControl("DescrizionePagina"); 
myPanel.Attributes.Add("class", "pagina-testo-box-small"); 

但它不工作... pagina-testo-box-large依然存在,

+0

_「我可以overwr在UserControl中迭代一個類?「_標題不在上下文中,你沒有顯示你的'UserControl'。 「面板」在哪裏,「UserControl」在哪裏(在頁面中)? – 2013-03-07 15:36:28

+0

* Title fixed * .. – Patrick 2013-03-07 15:36:59

+0

爲什麼你需要使用'FindControl'呢? – 2013-03-07 15:37:23

回答

2

所以,如果你已經知道property,你爲什麼不使用它?

Panel myPanel = (Panel)this.Parent.FindControl("DescrizionePagina"); 
myPanel.CssClass = "pagina-testo-box-small"; 
+0

@timSchmelter這兩者之間有什麼區別? – 2013-03-07 15:42:47

+0

如果設置屬性'CssClass',將優先並覆蓋'Attributes [「class」]''。我假設'.Attributes.Add'只會在不存在的情況下添加它,因此它不會在上面做任何事情。他也可以嘗試使用'Attributes [class] =「pagina-testo-box-small」'。但是,您必須先檢查它是否存在以防止發生異常。如你所見,使用'CssClass'更好。 – 2013-03-07 15:56:07

0

簡單使用CssClass屬性 - 與您在ASPX代碼中已經設置的屬性相同:

myPanel.CssClass = "pagina-testo-box-small"; 

在幕後,在.NET財產CssClass將被轉換到HTML class屬性,但ASP.NET自動完成這個功能。

0

使用下面的代碼:

myPanel.CssClass = "pagina-testo-box-small"; 
0

如果這不起作用在上面的答案

Panel myPanel = (Panel)this.Parent.FindControl("DescrizionePagina"); 
myPanel.CssClass = "pagina-testo-box-small"; 

建議然後你可以使用這樣的個別屬性使用!important

Panel myPanel = (Panel)this.Parent.FindControl("DescrizionePagina"); 
myPanel.Style.Add("float", "left!important"); 
相關問題