ControlBuilderAttribute ControlBuilderAttribute ControlBuilderAttribute ControlBuilderAttribute Class

Definition

Gibt eine ControlBuilder-Klasse an, mit der im ASP.NET-Parser ein benutzerdefiniertes Steuerelement erstellt werden kann.Specifies a ControlBuilder class for building a custom control within the ASP.NET parser. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class ControlBuilderAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class ControlBuilderAttribute : Attribute
type ControlBuilderAttribute = class
    inherit Attribute
Public NotInheritable Class ControlBuilderAttribute
Inherits Attribute
Vererbung
ControlBuilderAttributeControlBuilderAttributeControlBuilderAttributeControlBuilderAttribute
Attribute

Beispiele

Im folgenden Codebeispiel wird eine angepasste Auswahlliste erstellt, die verwendet wird, um eine Meldung auf SelectedIndex der Grundlage Message des und der zur Laufzeit definierten Werte anzuzeigen.The following code example creates a customized selection list that is used to display a message based on the SelectedIndex and the Message values defined at run time. Die folgende Befehlszeile wird verwendet, um die ausführbare Datei zu erstellen.The following command line is used to build the executable.

vbc /r:System.dll /r:System.Web.dll /r:System.Drawing.dll /t:library /out:myWebAppPath/Bin/vb_MyControlBuilderAtt.dll ControlBuilderAtt.vb  
csc /t:library /out:myWebAppPath/Bin/cs_MyControlBuilderAtt.dll ControlBuilderAtt.cs  

/* File name: controlBuilderAttribute.cs. */

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


namespace CustomControls

{
  public class MyCS_Item : Control 
  /* Class name: MyCS_Item. 
   * Defines the child control class.
   */
    {

      private String _message;

      public String Message 
      {
        get 
        {
          return _message;
        }
        set 
        {
           _message = value;
        }
     }
    }


    public class CustomParseControlBuilder : ControlBuilder 
    /* Class name: CustomParserControlBuilder.
     * Defines the functions and data to be used in building custom controls. 
     * This class is referenced using the ControlBuilderAttribute class. See class below.
     */
    {
      [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
      public override Type GetChildControlType(String tagName, IDictionary attributes) 
      {
        if (String.Compare(tagName, "customitem", true) == 0) 
        {
           return typeof(MyCS_Item);
        }
        return null;
      }
    }


    [ 
       ControlBuilderAttribute(typeof(CustomParseControlBuilder)) 
    ]
    public class MyCS_CustomParse : Control 
    /* Class name: MyCS_CustomParse.
     * Performs custom parsing of a MyCS_CustomParse control type 
     * child control. 
     * If the child control is of the allowed type, it is added to an 
     * array list. This list is accessed, using the container control attribute 
     * SelectedIndex, to obtain the related child control Message attribute to be displayed.
     */
    {

       private ArrayList _items         = new ArrayList();
       private int       _selectedIndex = 0;

       public int SelectedIndex 
       { 
           get 
           {
              return _selectedIndex;
           }
           set 
           {
              _selectedIndex = value;
           }
       }

       [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
       protected override void AddParsedSubObject(Object obj) 
       /* Function name: AddParsedSubObject.
        * Updates the array list with the allowed child objects.
        * This function is called during the parsing of the child controls and 
        * after the GetChildControlType function defined in the associated control 
        * builder class.
        */
       {
          if (obj is MyCS_Item) 
         {
              _items.Add(obj);
           }
       }

       [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
       protected override void Render(HtmlTextWriter output) 
       /* Function name: Render.
        * Establishes the rules to render the built control. In this case, a message is
        * rendered that is a function of the parent control SelectedIndex attribute and 
        * the related child Message attribute.
        */
       {
          if (SelectedIndex < _items.Count) 
         {
              output.Write("<span style='background-color:aqua; color:red; font:8pt tahoma, verdana;'><b>" +
              ((MyCS_Item) _items[SelectedIndex]).Message + "</b></span>" );
         }
       }
    }    
}


'File name: controlBuilderAttribute.vb.

Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections



Namespace CustomControls

Public Class MyVB_Item: Inherits Control
      
      Private _message As String
      
      Public Property Message() As String
         Get
            Return _message
         End Get
         Set
            _message = value
         End Set
      End Property
   End Class 'MyVB_Item
   
   Public Class VB_CustomParseControlBuilder: Inherits ControlBuilder

      <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")>  _
      Public Overrides Function GetChildControlType(TagName As String, attributes As IDictionary) As Type
          If (TagName = "customitem")  Then
            Return GetType(CustomControls.MyVB_Item)
         End If
         Return Nothing
      End Function 'GetChildControlType
   End Class 'CustomParseControlBuilder
   
   <ControlBuilderAttribute(GetType(VB_CustomParseControlBuilder))>  Public Class MyVB_CustomParse: Inherits Control
      
      Private _items As New ArrayList
      Private _selectedIndex As Integer = 0
      
      
      Public Property SelectedIndex() As Integer
         Get
            Return _selectedIndex
         End Get
         Set
            _selectedIndex = value
         End Set
      End Property
      
      <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
      Protected Overrides Sub AddParsedSubObject(obj As Object)
         If TypeOf obj Is MyVB_Item Then
            _items.Add(obj)
         End If
      End Sub 'AddParsedSubObject
      
      <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
      Protected Overrides Sub Render(output As HtmlTextWriter)        
        output.Write(("<span style='background-color:aqua; color:red; font:8pt tahoma, verdana;'><b>" + CType(_items(SelectedIndex), MyVB_Item).Message + "</b></span>"))
      End Sub 'Render
   End Class 'MyVB_CustomParse 
   
End Namespace 'CustomControls

Im folgenden Beispiel wird das oben definierte benutzerdefinierte Steuerelement verwendet.The following example uses the custom control defined above. Insbesondere werden der-Wert und SelectedIndex der Message -Wert zur Laufzeit zugewiesen, um die zu rendernde Nachricht zu bestimmen.In particular, it assigns the SelectedIndex and Message values at run time to determine the message to be rendered. Beachten Sie, dass die in der Register -Direktive angezeigten Werte die vorherige Befehlszeile widerspiegeln.Notice that the values shown in the Register directive reflect the previous command line.

<%@ Register TagPrefix="custom" Assembly="myControlBuilderAtt" Namespace="CustomControls" %>  
 <h4>Using ControlBuilderAttribute Class<h4>  
 <form runat="server">  
  <custom:MyVB_CustomParse SelectedIndex="3" runat=server>  
  <customitem Message="Visual Basic version. Item One selected"/>  
  <customitem Message="Visual Basic version. Item Two selected"/>  
  <customitem Message="Visual Basic version. Item Three selected"/>  
  <customitem Message="Visual Basic version. Item Four selected"/>  
  </custom:MyVB_CustomParse>  
 </form>  
<%@ Register TagPrefix="custom" Assembly="myControlBuilderAtt" Namespace="CustomControls" %>  
 <h4>Using ControlBuilderAttribute Class<h4>  
 <form runat="server">  
  <custom:MyCS_CustomParse SelectedIndex="2" runat=server>  
  <customitem Message="C# version. Item One selected"/>  
  <customitem Message="C# version. Item Two selected"/>  
  <customitem Message="C# version. Item Three selected"/>  
  <customitem Message="C# version. Item Four selected"/>  
  </custom:MyCS_CustomParse>  
 </form>  

Hinweise

Dieses Attribut gibt den Generator Type an, der verwendet wird, um ein benutzerdefiniertes Steuerelement zu erstellen, wie im folgenden Code gezeigt:This attribute specifies the builder Type to be used to create a custom control as shown in the following code:

[ControlBuilderAttribute(typeof(ControlBuilderType))]  

Konstruktoren

ControlBuilderAttribute(Type) ControlBuilderAttribute(Type) ControlBuilderAttribute(Type) ControlBuilderAttribute(Type)

Gibt den Steuerelementgenerator für ein benutzerdefiniertes Steuerelement anSpecifies the control builder for a custom control.

Felder

Default Default Default Default

Gibt das neue ControlBuilderAttribute-Objekt an.Specifies the new ControlBuilderAttribute object. Der Standardwert des neuen Objekts ist NULL.By default, the new object is set to null. Dieses Feld ist schreibgeschützt.This field is read-only.

Eigenschaften

BuilderType BuilderType BuilderType BuilderType

Ruft den Type des Steuerelements ab, das dem Attribut zugeordnet istGets the Type of the control associated with the attribute. Diese Eigenschaft ist schreibgeschützt.This property is read-only.

TypeId TypeId TypeId TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Ruft einen Wert ab, der angibt, ob der aktuelle ControlBuilderAttribute mit dem angegebenen Objekt identisch istGets a value indicating whether the current ControlBuilderAttribute is identical to the specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt den Hashcode des ControlBuilderAttribute-Objekts zurückReturns the hash code of the ControlBuilderAttribute object.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Bestimmt, ob der aktuelle Steuerelement-Generator der Standard-Generator istDetermines whether the current control builder is the default.

Match(Object) Match(Object) Match(Object) Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _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.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Gilt für:

Siehe auch