我正在构建一个asp.net用户控件库,我从一个自定义的UserControlBase类派生,该类进一步派生自实际的UserControl类。层次结构如下所示:
ASCX - > UserControlBase:UserControl
我有这个要求在所有ASCX周围设置边框。所以,我想如果我可以修改UserControlBase它将适用于所有ASCX。我尝试在UserCOntrolBase的Page_Load中使用代码,但它无法正常工作
this.Attributes.Add(“style”,“border-color:#FFFF66; border-width:4px; border-style:Dashed;”);
我该怎么做才能让它发挥作用?请指教。
由于 AJ
答案 0 :(得分: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标记中,该标记包含您尝试添加的样式属性。