(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ParseChildrenAttribute-Klasse

Definiert ein Metadatenattribut, das bei der Entwicklung von ASP.NET-Serversteuerelementen verwendet werden kann. Mit der ParseChildrenAttribute-Klasse können Sie angeben, wie der Seitenparser mit Inhalten verfahren soll, die in einem auf einer Seite deklarierten Serversteuerelementtag geschachtelt sind. Die Klasse erlaubt keine Vererbung.

System.Object
  System.Attribute
    System.Web.UI.ParseChildrenAttribute

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)

[AttributeUsageAttribute(AttributeTargets.Class)]
public sealed class ParseChildrenAttribute : Attribute

Der ParseChildrenAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeParseChildrenAttribute()Initialisiert eine neue Instanz der ParseChildrenAttribute-Klasse.
Öffentliche MethodeParseChildrenAttribute(Boolean)Initialisiert eine neue Instanz der ParseChildrenAttribute-Klasse, wobei mithilfe der ChildrenAsProperties-Eigenschaft bestimmt wird, ob die in einem Serversteuerelement enthaltenen Elemente als Eigenschaften des Serversteuerelements analysiert werden.
Öffentliche MethodeParseChildrenAttribute(Type)Initialisiert eine neue Instanz der ParseChildrenAttribute-Klasse, wobei mithilfe der ChildControlType-Eigenschaft bestimmt wird, welche der in einem Serversteuerelement enthaltenen Elemente als Steuerelemente analysiert werden.
Öffentliche MethodeParseChildrenAttribute(Boolean, String)Initialisiert eine neue Instanz der ParseChildrenAttribute-Klasse mithilfe des childrenAsProperties-Parameters und des defaultProperty-Parameters.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftChildControlTypeRuft einen Wert ab, der den zulässigen Typ eines Steuerelements angibt.
Öffentliche EigenschaftChildrenAsPropertiesRuft einen Wert ab, der angibt, ob die in einem Serversteuerelement enthaltenen Elemente als Eigenschaften analysiert werden sollen, oder legt diesen Wert fest.
Öffentliche EigenschaftDefaultPropertyRuft die Standardeigenschaft des Serversteuerelements ab, in dem Elemente analysiert werden, oder legt diese fest.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEqualsBestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Überschreibt Attribute.Equals(Object).)
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für das ParseChildrenAttribute-Objekt. (Überschreibt Attribute.GetHashCode().)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeGibt einen Wert zurück, der angibt, ob der Wert der aktuellen Instanz der ParseChildrenAttribute-Klasse der Standardwert der abgeleiteten Klasse ist. (Überschreibt Attribute.IsDefaultAttribute().)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberDefaultDefiniert den Standardwert für die ParseChildrenAttribute-Klasse. Dieses Feld ist schreibgeschützt.
Öffentliches FeldStatischer MemberParseAsChildrenGibt an, dass die in einem Serversteuerelement enthaltenen geschachtelten Inhalte als Steuerelemente analysiert werden.
Öffentliches FeldStatischer MemberParseAsPropertiesGibt an, dass die in einem Serversteuerelement enthaltenen geschachtelten Inhalte als Eigenschaften des Steuerelements analysiert werden.
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Mit der ParseChildrenAttribute-Klasse können Benutzer eine Analyselogik für ein benutzerdefiniertes Serversteuerelement angeben, indem sie das Serversteuerelement mit dem ParseChildrenAttribute-Metadatenattribut markieren.

Durch Markieren des Serversteuerelements mit dem Metadatenattribut ParseChildren(true) wird der Parser angewiesen, die in den Serversteuerelementtags enthaltenen Elemente als Eigenschaften zu interpretieren. In diesem Szenario ist die ChildrenAsProperties-Eigenschaft true.

Durch Markieren des Serversteuerelements mit dem Metadatenattribut ParseChildren(true,"<Default Property>") wird die DefaultProperty-Eigenschaft auf den Namen der Eigenschaft festgelegt, die an das Attribut übergeben wird.

Durch Markieren des Serversteuerelements mit dem Metadatenattribut ParseChildren(false) (Standardwert) wird der Parser angewiesen, die in den Steuerelementtags enthaltenen Elemente als Inhalte zu interpretieren, die mit einem zugeordneten ControlBuilder analysiert werden, und sie somit als Steuerelemente zu betrachten. In diesem Szenario ist die ChildrenAsProperties-Eigenschaft false.

Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Das Codebeispiel in diesem Abschnitt besteht aus zwei Teilen. Im ersten Teil wird das Festlegen von Eigenschaften für die ParseChildrenAttribute-Klasse veranschaulicht. Im zweiten Codebeispiel wird veranschaulicht, wie Klassen in einer ASP.NET-Seite verwendet werden.

Im folgenden Codebeispiel wird veranschaulicht, wie das ParseChildrenAttribute-Objekt eines benutzerdefinierten Serversteuerelements mit dem Namen CollectionPropertyControl festgelegt wird. Mithilfe von ParseChildrenAttribute wird die ChildrenAsProperties-Eigenschaft auf true festgelegt, und die DefaultProperty-Eigenschaft wird auf die Employee-Klasse festgelegt.


using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
   // The child element class.
   [AspNetHostingPermission(SecurityAction.Demand, 
      Level=AspNetHostingPermissionLevel.Minimal)]
   public sealed class Employee
   {
      private String name;
      private String title;
      private String alias;

      public Employee():this ("","",""){}

      public Employee (String name, String title, String alias)
      {
         this.name = name;
         this.title = title;
         this.alias = alias;
      }
      public String Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }

      public String Title
      {
         get
         {
            return title;
         }
         set
         {
            title = value;
         }
      }

      public String Alias
      {
         get
         {
            return alias;
         }
         set
         {
            alias = value;
         }
      }
   }
   // Use the ParseChildren attribute to set the ChildrenAsProperties
   // and DefaultProperty properties. Using this constructor, the
   // control parses all child controls as properties and must define
   // a public property named Employees, which it declares as
   // an ArrayList. Nested (child) elements must correspond to
   // child elements of the Employees property or to other
   // properties of the control.  
   [ParseChildren(true, "Employees")]
   [AspNetHostingPermission(SecurityAction.Demand, 
      Level=AspNetHostingPermissionLevel.Minimal)]
   public sealed class CollectionPropertyControl : Control
   {  
      private String header;
      private ArrayList employees = new ArrayList();

      public String Header
      {
         get
         {
            return header;
         }
         set
         {
            header = value;
         }
      }



      public ArrayList Employees
      {
         get 
         {
            return employees;
         }
      }
      // Override the CreateChildControls method to 
      // add child controls to the Employees property when this
      // custom control is requested from a page.
      protected override void CreateChildControls()
      {
         Label label = new Label();
         label.Text = Header;
         label.BackColor = System.Drawing.Color.Beige;
         label.ForeColor = System.Drawing.Color.Red;
         Controls.Add(label);
         Controls.Add(new LiteralControl("<BR> <BR>"));

         Table table = new Table();
         TableRow htr = new TableRow();

         TableHeaderCell hcell1 = new TableHeaderCell();    
         hcell1.Text = "Name";
         htr.Cells.Add(hcell1);

         TableHeaderCell hcell2 = new TableHeaderCell();
         hcell2.Text = "Title";
         htr.Cells.Add(hcell2);

         TableHeaderCell hcell3 = new TableHeaderCell();
         hcell3.Text = "Alias";
         htr.Cells.Add(hcell3);
         table.Rows.Add(htr);

         table.BorderWidth = 2;
         table.BackColor = System.Drawing.Color.Beige;
         table.ForeColor = System.Drawing.Color.Red;
         foreach (Employee employee in Employees)
         {
            TableRow tr = new TableRow();

            TableCell cell1 = new TableCell();
            cell1.Text = employee.Name;
            tr.Cells.Add(cell1);

            TableCell cell2 = new TableCell();
            cell2.Text = employee.Title;
            tr.Cells.Add(cell2);

            TableCell cell3 = new TableCell();
            cell3.Text = employee.Alias;
            tr.Cells.Add(cell3);

            table.Rows.Add(tr);
         }
         Controls.Add(table);

      }
   }
}


Im folgenden Codebeispiel wird veranschaulicht, wie die CollectionPropertyControl-Klasse und die Employee-Klasse in einer ASP.NET-Seite verwendet werden. Instanzen der Employee-Klasse werden deklarativ hinzugefügt.


<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="AspSample" Assembly="Samples.AspNet.CS.Controls" Namespace="Samples.AspNet.CS.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {

    // Verify attribute values.
    ParseChildrenAttribute p = 
      (ParseChildrenAttribute)Attribute.GetCustomAttribute(typeof(CollectionPropertyControl),
      typeof(ParseChildrenAttribute));

    StringBuilder sb = new StringBuilder();
    sb.Append("The DefaultProperty property is " + p.DefaultProperty.ToString() + "<br />");
    sb.Append("The ChildrenAsProperties property is " + p.ChildrenAsProperties.ToString() + "<br />");
    sb.Append("The IsDefaultAttribute method returns " + p.IsDefaultAttribute().ToString());
    Message.Text = sb.ToString();

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ParseChildrenAttribute Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:Label ID="Message"
                 runat="server"/>
      <AspSample:CollectionPropertyControl id="CollectionPropertyControl1" 
                                           runat="server">
        <AspSample:Employee Name="Employee 1" 
                            Title="Title 1" 
                            Alias="Alias 1" />
        <AspSample:Employee Name="Employee 2" 
                            Title="Title 2" 
                            Alias="Alias 2" />
      </AspSample:CollectionPropertyControl>    
    </div>
    </form>
</body>
</html>


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft