Что происходит, когда вы устанавливаете свойство родительского контроля Enabled? - PullRequest
0 голосов
/ 27 января 2009

У меня есть контейнер пользовательских элементов управления, каждый из которых имеет 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? Мое предположение состояло в том, что он передал этот статус всем своим детям, но, похоже, я ошибаюсь.

Спасибо!

1 Ответ

0 голосов
/ 27 января 2009

Короткий ответ: ваше предположение на самом деле неверно.

Если вам нравится (и расширяете WebControl, а ваш контейнер имеет runat = сервер), вы можете использовать

If NamingContainer.Enabled Then

вместо

If Me.Enabled Then

но свойства не распространяются автоматически вниз по дереву в asp.

...