Что происходит, когда Вы устанавливаете свойство Enabled родительского элемента управления?
-
20-08-2019 - |
Вопрос
У меня есть контейнер пользовательских элементов управления, в каждом из которых есть по 2 элемента управления.Тот, который будет отображаться при включении (т.е.текстовое поле или флажок) и метка, которая будет отображаться при отключении.
Я перегружен Render
вот так:
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
If Me.Enabled Then
_item.RenderControl(writer)
Else
_display_text.RenderControl(writer)
End If
End Sub
однако, когда я устанавливаю контейнер, который является таблицей, на Enabled = False
, моя ожидаемая функциональность не выполняется.Вместо этого я получаю текстовые поля и флажки серого цвета.
Что на самом деле происходит, когда вы устанавливаете родительский Enabled
собственность?Мое предположение состояло в том, что он распространил этот статус на всех своих дочерних элементов, но, похоже, я ошибаюсь.
Спасибо!
Решение
Короткий ответ заключается в том, что ваше предположение на самом деле неверно.
Если вам нравится (и вы расширяете WebControl, а в вашем контейнере есть runat=server), вы могли бы использовать
If NamingContainer.Enabled Then
вместо того , чтобы
If Me.Enabled Then
но свойства не распространяются автоматически вниз по дереву в asp.