2010-02-25 60 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标签,其中包括样式属性,您要添加用户的控制。