【问题标题】:Change border properties of ASCX from code-behind?从代码隐藏更改 ASCX 的边框属性?
【发布时间】:2011-01-21 04:46:54
【问题描述】:

我正在构建一个 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;");

我应该怎么做才能让它工作?请指教。

谢谢 阿杰

【问题讨论】:

    标签: asp.net user-controls border code-behind


    【解决方案1】:

    除了您放入的内容之外,用户控件没有与之关联的任何标记。所以没有可以添加样式属性的标签。所以你必须自己添加一个包装标签。

    一种解决方案是像这样覆盖 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 标记中,该标记包含您尝试添加的样式属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多