Freigeben über


Verwenden von ParseChildrenAttribute

ParseChildrenAttribute ist ein .NET Framework-Metadatenattribut, das auf Klassenebene angewendet wird. Es ermöglicht einem Steuerelement festzulegen, wie der Seitenparser geschachtelte Elemente innerhalb der Steuerelementtags interpretiert, wenn das Steuerelement deklarativ auf einer ASP.NET-Seite verwendet wird. ParseChildrenAttribute kann mit Hilfe benannter Argumente erstellt werden, die einem booleschen Flag und einer Standardeigenschaft des Steuerelements entsprechen. Einzelheiten zur Syntax dieses Attributs finden Sie unter System.Web.UI.ParseChildrenAttribute.

Das folgende Beispiel zeigt, wie ParseChildrenAttribute auf ein Steuerelement angewendet wird.

[ ParseChildren(ChildrenAsProperties = true)] 
// Or apply as [ ParseChildren(true)].
public class TemplatedFirstControl : Control, INamingContainer {...}
[Visual Basic]
<ParseChildren(ChildrenAsProperties := True)> _
Public Class TemplatedFirstControl
   Inherits Control
   Implements INamingContainer
   ...
End Class

Ein Beispiel für ein Steuerelement, das mit ParseChildrenAttribute gekennzeichnet ist, finden Sie unter Beispiel für ein Steuerelement mit Vorlagen. Wenn TemplatedFirstControl auf einer Seite deklarativ verwendet wird, müssen direkt untergeordnete Elemente innerhalb der Steuerelementtags den Eigenschaften von TemplatedFirstControl entsprechen, wie im folgenden Beispiel demonstriert.

<%-- FirstTemplate is a property of TemplatedFirstControl. --%>
<%-- Custom is the tag prefix for TemplatedFirstControl on the page as defined in the <%@ Register %> directive. --%>
<Custom:TemplatedFirstControl id = "First" Text= "The time on the server is "  runat=server>                         
   <FirstTemplate>
       <h3><font face="Verdana" color = "red"><%# Container.Text %> <%# Container.DateTime %>
       </font></h3>
    </FirstTemplate>      
</Custom:TemplatedFirstControl>

In der folgenden Tabelle wird das Verwendungsmuster für ParseChildrenAttribute beschrieben.

Attributverwendung Beschreibung
ParseChildrenAttribute(ChildrenAsProperties = true)

oder

ParseChildren(true)

Geschachtelte (untergeordnete) Elemente müssen Eigenschaften des Steuerelements entsprechen. Andere (nicht die Eigenschaften betreffende) Elemente und Literaltext zwischen den Steuerelementtags generieren einen Parserfehler.

Beispiele: Repeater und andere datengebundene Steuerelemente.

ParseChildrenAttribute(ChildrenAsProperties = false)

oder

ParseChildrenAttribute(false)

oder

ParseChildrenAttribute wird nicht auf das Steuerelement angewendet.

Geschachtelte (untergeordnete) Elemente müssen ASP.NET-Serversteuerelementen entsprechen. Der Seitenparser erstellt das untergeordnete Steuerelement und ruft IParserAccessor.AddParsedSubObject für das Steuerelement auf. Die Standardimplementierung von AddParsedSubObject fügt die untergeordneten Steuerelemente zur Controls-Auflistung des Steuerelements hinzu. Der Seitenparser analysiert Literaltext zwischen Tags als Instanzen von LiteralControl.

Beispiel: Panel.

ParseChildrenAttribute (ChildrenAsProperties = true, DefaultProperty = "PropertyName")

oder

ParseChildrenAttribute(true, "PropertyName")

Das Steuerelement muss eine öffentliche Eigenschaft mit der Bezeichnung PropertyName definieren. Geschachtelte (untergeordnete) Elemente müssen untergeordneten Elementen der PropertyName-Eigenschaft entsprechen.

Beispiele: HtmlTable, HtmlTableRow.

Ein Beispiel finden Sie unter ParseChildrenAttribute-Beispiel.

ParseChildrenAttribute(false, "PropertyName") Der Seitenparser setzt diese Verwendung ParseChildrenAttribute(false) gleich.

Hinweis   System.Web.UI.WebControls.WebControl ist als ParseChildren(true) markiert. Ein benutzerdefiniertes von WebControl abgeleitetes Steuerelement erbt diese Attributmarkierung. Sie können das geerbte Attribut außer Kraft setzen, indem Sie das Attribut mit anderen Argumenten erneut anwenden.

Hinweis   Wenn ControlBuilderAttribute zusätzlich zu ParseChildrenAttribute angewendet wird, kann es die in der Tabelle beschriebene Analyselogik ändern.

Siehe auch

Steuerelementanalyse, das ParseChildrenAttribute und Steuerelement-Generatoren | ParseChildrenAttribute-Beispiel