This documentation is archived and is not being maintained.

ControlBuilderAttribute Class

Specifies a ControlBuilder class for building a custom control within the ASP.NET parser. This class cannot be inherited.

System.Object
  System.Attribute
    System.Web.UI.ControlBuilderAttribute

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

'Declaration
<AttributeUsageAttribute(AttributeTargets.Class)> _
Public NotInheritable Class ControlBuilderAttribute _
	Inherits Attribute

The ControlBuilderAttribute type exposes the following members.

  NameDescription
Public methodControlBuilderAttributeInfrastructure. Specifies the control builder for a custom control.
Top

  NameDescription
Public propertyBuilderTypeGets the Type of the control associated with the attribute. This property is read-only.
Public propertyTypeIdWhen implemented in a derived class, gets a unique identifier for this Attribute. (Inherited from Attribute.)
Top

  NameDescription
Public methodEqualsInfrastructure. Gets a value indicating whether the current ControlBuilderAttribute is identical to the specified object. (Overrides Attribute.Equals(Object).)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeInfrastructure. Returns the hash code of the ControlBuilderAttribute object. (Overrides Attribute.GetHashCode.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIsDefaultAttributeInfrastructure. Determines whether the current control builder is the default. (Overrides Attribute.IsDefaultAttribute.)
Public methodMatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public fieldStatic memberDefaultInfrastructure. Specifies the new ControlBuilderAttribute object. By default, the new object is set to null. This field is read-only.
Top

  NameDescription
Explicit interface implemetationPrivate method_Attribute.GetIDsOfNamesMaps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoRetrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.GetTypeInfoCountRetrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.)
Explicit interface implemetationPrivate method_Attribute.InvokeProvides access to properties and methods exposed by an object. (Inherited from Attribute.)
Top

This attribute specifies the builder Type to be used to create a custom control as shown in the following code:

[ControlBuilderAttribute(typeof(ControlBuilderType))]

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


'File name: controlBuilderAttribute.vb.

Imports System
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



The following example uses the custom control defined above. In particular, it assigns the SelectedIndex and Message values at run time to determine the message to be rendered. 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>

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show: