Utilizzo di ParseChildrenAttribute

ParseChildrenAttribute è un attributo di metadati .NET Framework applicato a livello di classe. Esso consente al controllo di specificare come il parser di pagina interpreta gli elementi nidificati all'interno dei tag del controllo quando tale controllo viene utilizzato in modo dichiarativo su una pagina ASP.NET. ParseChildrenAttribute può essere creato utilizzando argomenti denominati che corrispondono a un flag Booleano e a una proprietà predefinita del controllo. Per informazioni dettagliate sulla sintassi relativa a questo attributo, vedere System.Web.UI.ParseChildrenAttribute.

Nell'esempio seguente viene descritto come applicare ParseChildrenAttribute a un controllo.

[ 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

Per un esempio di controllo contrassegnato con ParseChildrenAttribute, vedere Esempio di controllo basato su template. Quando TemplatedFirstControl viene utilizzato su una pagina in modo dichiarativo, gli elementi figlio (figli immediati) all'interno dei tag del controllo devono corrispondere alle proprietà di TemplatedFirstControl, come descritto nell'esempio seguente.

<%-- 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>

Nella tabella seguente viene descritto il criterio di utilizzo per il ParseChildrenAttribute.

Utilizzo dell'attributo Descrizione
ParseChildrenAttribute(ChildrenAsProperties = true)

oppure

ParseChildren(true)

Gli elementi nidificati (figlio) devono corrispondere a proprietà del controllo. Altri elementi (nonproperty) e testo letterale tra i tag di controllo generano un errore del parser.

Esempi: Repeater e altri controlli con associazione a dati.

ParseChildrenAttribute(ChildrenAsProperties = false)

oppure

ParseChildrenAttribute(false)

oppure

ParseChildrenAttribute non viene applicato al controllo.

Gli elementi nidificati (figlio) devono corrispondere ai controlli server ASP.NET. Il parser di pagina crea i controlli figlio e chiama IParserAccessor.AddParsedSubObject sul controllo. L'implementazione predefinita di AddParsedSubObject aggiunge i controlli figlio all'insieme Controls del controllo. Il parser di pagina analizza il testo letterale tra i tag come istanze di LiteralControl.

Esempio: Panel.

ParseChildrenAttribute (ChildrenAsProperties = true, DefaultProperty = "NomeProprietà")

oppure

ParseChildrenAttribute(true, "NomeProprietà")

Il controllo deve definire una proprietà pubblica denominata NomeProprietà. Gli elementi nidificati (figlio) devono corrispondere a elementi figlio della proprietà NomeProprietà.

Esempi: HtmlTable, HtmlTableRow.

Per un esempio, vedere Esempio di ParseChildrenAttribute.

ParseChildrenAttribute(false, "NomeProprietà") Il parser di pagina corrisponde a questo utilizzo in ParseChildrenAttribute(false).

Nota   System.Web.UI.WebControls.WebControl è contrassegnato come ParseChildren(true). Un controllo personalizzato che deriva da WebControl eredita il contrassegno di questo attributo. È possibile eseguire l'override dell'attributo ereditato riapplicando l'attributo con argomenti differenti.

Nota   Se, oltre a ParseChildrenAttribute, viene applicato ControlBuilderAttribute, è possibile che la logica di analisi descritta nella tabella venga modificata.

Vedere anche

Analisi dei controlli, ParseChildrenAttribute e generatori di controlli | Esempio di ParseChildrenAttribute