Frage

Ich habe einen Container von benutzerdefinierten Steuerelemente, von denen jeder in ihnen zwei Kontrollen haben. Eine anzuzeigen, wenn aktiviert (das heißt ein Textfeld oder Kontrollkästchen), und einer Markierung, wenn sie deaktiviert anzuzeigen.

Ich habe überlastet Render etwa so:

    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

Allerdings, wenn ich den Behälter gesetzt, der eine Tabelle, auf Enabled = False, meine erwartete Funktionalität nicht passieren. Ich werde stattdessen abgeblendet Textfelder und Kontrollkästchen.

Was ist eigentlich passiert, wenn Sie ein Elternteil Enabled Eigenschaft? Meine Vermutung war, dass es diesen Status nach unten auf alle seine Kinder propagiert, aber es scheint, dass ich falsch.

Danke!

War es hilfreich?

Lösung

Kurze Antwort ist, dass Ihre Annahme tatsächlich falsch ist.

Wenn Sie (und erweitern WebControl und Ihre Behälter hat einen runat = Server), könnten Sie verwenden

If NamingContainer.Enabled Then

statt

If Me.Enabled Then

aber Eigenschaften Auto nicht die den Baum in asp propagieren nach unten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top