Изменить свойства границ ASCX из-за кода? - PullRequest
1 голос
/ 25 февраля 2010

Я создаю библиотеку пользовательских элементов управления asp.net, которую я извлекаю из пользовательского класса UserControlBase, который далее наследуется от фактического класса UserControl. Иерархия выглядит так:

ASCX -> UserControlBase: UserControl

У меня есть требование обвести границы всех ASCX. Итак, я подумал, что если я смогу изменить UserControlBase, он будет применяться ко всем ASCX. Я попытался следующий код в Page_Load UserCOntrolBase, но он не работает

this.Attributes.Add ("стиль", "цвет границы: # FFFF66; ширина границы: 4 пикселя; стиль границы: пунктирная;");

Что я должен сделать, чтобы это работало? Пожалуйста, сообщите.

Спасибо AJ

1 Ответ

2 голосов
/ 25 февраля 2010

Пользовательские элементы управления не имеют никакой разметки, связанной с ними, кроме того, что вы положили внутрь. Так что нет тега, к которому вы можете добавить свои атрибуты стиля. Таким образом, вы должны добавить тег упаковки самостоятельно.

Одним из решений является переопределение метода Render в UserControlBase следующим образом:

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, который включает атрибуты стиля, которые вы пытаетесь добавить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...