Question

J'ai un conteneur de contrôles personnalisés contenant chacun 2 contrôles. L'une à afficher lorsqu'elle est activée (c'est-à-dire une zone de texte ou une case à cocher) et une étiquette à afficher lorsqu'elle est désactivée.

J'ai surchargé Render comme suit:

    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

Cependant, lorsque je règle le conteneur, qui est une table, sur Enabled = False, la fonctionnalité attendue ne se produit pas. À la place, les zones de texte et les cases à cocher sont grisées.

Que se passe-t-il réellement lorsque vous définissez la propriété Enabled d'un parent? Mon hypothèse était qu'il transmettait ce statut à tous ses enfants, mais il semble que je me trompe.

Merci!

Était-ce utile?

La solution

La réponse courte est que votre hypothèse est réellement fausse.

Si vous aimez (et étendez WebControl et que votre conteneur a un serveur runat =), vous pouvez utiliser

.
If NamingContainer.Enabled Then

au lieu de

If Me.Enabled Then

mais les propriétés ne se propagent pas automatiquement dans l'arborescence en asp.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top