O que acontece quando você definir um pai de Controle está habilitado Propriedade?
-
20-08-2019 - |
Pergunta
Eu tenho um recipiente de controles personalizados cada um dos quais tem 2 controles neles. Um para exibir quando ativado (ou seja, uma caixa de texto ou caixa), e um rótulo a ser exibido quando desativado.
Render
Eu sobrecarregado assim:
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
No entanto, quando eu definir o recipiente, que é uma mesa, para Enabled = False
, meu funcionalidade esperada não acontece. Em vez disso eu me acinzentado caixas de texto e caixas de seleção.
O que realmente acontece quando você definir a propriedade Enabled
de um pai? Minha suposição era que propagado que o status para baixo para todos os seus filhos, mas parece que eu estou enganado.
Obrigado!
Solução
A resposta curta é que seu pressuposto é realmente errado.
Se você gosta (e estão estendendo WebControl, e seu recipiente tem um runat = server), você pode usar
If NamingContainer.Enabled Then
em vez de
If Me.Enabled Then
mas propriedades não se propagam auto baixo a árvore em asp.