2010-02-25 88 views
1

我正在構建一個asp.net用戶控件庫,我從派生自實際UserControl類的自定義UserControlBase類派生。層次結構是這樣的:從代碼隱藏中更改ASCX的邊界屬性?

ASCX - > UserControlBase:用戶控件

我有這樣的要求,把邊框周圍所有的ASCX的。所以,我想如果我可以修改UserControlBase它將適用於所有的ASCX。我在UserCOntrolBase的Page_Load中嘗試了以下代碼,但它不起作用

this.Attributes.Add(「style」,「border-color:#FFFF66; border-width:4px; border-style:Dashed;」);

我該怎麼做才能使它工作?請指教。

感謝 AJ

回答

2

用戶控件沒有跟他們比你放什麼內部的其他相關聯的任何標記。所以沒有可以添加樣式屬性的標籤。所以你必須自己添加一個包裝標籤。

一種解決方案是重寫UserControlBase的Render方法是這樣的:

protected override void Render(HtmlTextWriter writer) 
{ 
    writer.Write("<div style='border-color:#FFFF66;border-width:4px;border-style:Dashed'>"); 
    base.Render(writer); 
    writer.Write("</div>"); 
} 

這包裝在一個div標籤,其中包括樣式屬性,您要添加用戶的控制。