Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ParseChildrenAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Definiert ein Metadatenattribut, mit denen Sie beim Entwickeln von ASP.NET-Serversteuerelementen. Verwenden der ParseChildrenAttribute um anzuzeigen, wie der Seitenparser Inhalt behandelt geschachtelt ein Serversteuerelement-Tag auf einer Seite deklariert. Diese Klasse kann nicht vererbt werden.

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

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

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

NameBeschreibung
System_CAPS_pubmethodParseChildrenAttribute()

Initialisiert eine neue Instanz der ParseChildrenAttribute-Klasse.

System_CAPS_pubmethodParseChildrenAttribute(Boolean)

Initialisiert eine neue Instanz von der ParseChildrenAttribute -Klasse unter Verwendung der ChildrenAsProperties Eigenschaft, um zu bestimmen, ob die in einem Serversteuerelement enthaltenen Elemente als Eigenschaften des Serversteuerelements analysiert werden.

System_CAPS_pubmethodParseChildrenAttribute(Boolean, String)

Initialisiert eine neue Instanz der ParseChildrenAttribute -Klasse unter Verwendung der childrenAsProperties und defaultProperty Parameter.

System_CAPS_pubmethodParseChildrenAttribute(Type)

Initialisiert eine neue Instanz von der ParseChildrenAttribute -Klasse unter Verwendung der ChildControlType -Eigenschaft können Sie bestimmen, welche in einem Serversteuerelement enthaltenen Elemente als Steuerelemente analysiert werden.

NameBeschreibung
System_CAPS_pubpropertyChildControlType

Ruft einen Wert, der den zulässigen Typ eines Steuerelements ab.

System_CAPS_pubpropertyChildrenAsProperties

Ruft ab oder legt einen Wert, der angibt, ob die Elemente zu analysieren, die in einem Serversteuerelement als Eigenschaften enthalten sind.

System_CAPS_pubpropertyDefaultProperty

Ruft ab oder legt die Standardeigenschaft für das Serversteuerelement an, in dem die Elemente analysiert werden.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Überschreibt Attribute.Equals(Object).)

System_CAPS_pubmethodGetHashCode()

Fungiert als Hashfunktion für die ParseChildrenAttribute Objekt.(Überschreibt Attribute.GetHashCode().)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt einen Wert, der angibt, ob der Wert der aktuellen Instanz der ParseChildrenAttribute Klasse ist der Standardwert der abgeleiteten Klasse.(Überschreibt Attribute.IsDefaultAttribute().)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubfieldSystem_CAPS_staticDefault

Definiert den Standardwert für die ParseChildrenAttribute Klasse. Dieses Feld ist schreibgeschützt.

System_CAPS_pubfieldSystem_CAPS_staticParseAsChildren

Gibt an, dass die geschachtelte Inhalte, die in das Steuerelement enthalten ist, als Steuerelemente analysiert werden.

System_CAPS_pubfieldSystem_CAPS_staticParseAsProperties

Gibt an, dass die geschachtelte Inhalte, die in einem Steuerelement enthalten ist, die als Eigenschaften des Steuerelements analysiert wird.

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Die ParseChildrenAttribute -Klasse können Sie Analyselogik für ein benutzerdefiniertes Serversteuerelement angeben, indem das Serversteuerelement mit der ParseChildrenAttribute Metadatenattribut.

Durch Markieren des Serversteuerelements mit dem Metadatenattribut ParseChildren(true) weist den Parser Elemente interpretieren, die innerhalb des Serversteuerelements-Tags als Eigenschaften enthalten sind. In diesem Szenario die ChildrenAsProperties Eigenschaft ist true.

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

Durch Markieren des Serversteuerelements mit dem Metadatenattribut ParseChildren(false), der Standardwert, weist den Parser Elemente interpretieren, die innerhalb des Serversteuerelements-Tags als Inhalt enthalten sind, die analysiert wird mit einem zugeordneten ControlBuilder also als Steuerelemente. In diesem Szenario die ChildrenAsProperties Eigenschaft ist false.

Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

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

Im folgenden Codebeispiel wird veranschaulicht, wie zum Festlegen der ParseChildrenAttribute Objekt ein benutzerdefiniertes Steuerelement mit dem Namen CollectionPropertyControl. Die ParseChildrenAttribute legt die ChildrenAsProperties -Eigenschaft true und die DefaultProperty Eigenschaft, um die Employee Klasse.

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 Sie die CollectionPropertyControl und Employee Klassen in einer ASP.NET-Seite. 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
Verfügbar seit 1.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: