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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top