Was passiert, wenn Sie eine Enabled-Eigenschaft Parent Control-Set?
-
20-08-2019 - |
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!
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.