¿Qué sucede cuando configura la propiedad habilitada de un control principal?
-
20-08-2019 - |
Pregunta
Tengo un contenedor de controles personalizados, cada uno de los cuales tiene 2 controles. Uno para mostrar cuando está habilitado (es decir, un cuadro de texto o casilla de verificación) y una etiqueta para mostrar cuando está deshabilitado.
He sobrecargado Render
así:
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
sin embargo, cuando configuro el contenedor, que es una tabla, en Enabled = False
, mi funcionalidad esperada no sucede. En cambio, aparecen cuadros de texto y casillas de verificación en gris.
¿Qué sucede realmente cuando configura la propiedad Enabled
de un padre? Supuse que propagaba ese estado a todos sus hijos, pero parece que estoy equivocado.
¡Gracias!
Solución
La respuesta corta es que su suposición es realmente incorrecta.
Si lo desea (y está extendiendo WebControl, y su contenedor tiene un servidor runat =), puede usar
If NamingContainer.Enabled Then
en lugar de
If Me.Enabled Then
pero las propiedades no se propagan automáticamente por el árbol en asp.