ControlBuilderAttribute Class
Specifies a ControlBuilder class for building a custom control within the ASP.NET parser. This class cannot be inherited.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | ControlBuilderAttribute(Type) | This API supports the product infrastructure and is not intended to be used directly from your code. Specifies the control builder for a custom control. |
| Name | Description | |
|---|---|---|
![]() | BuilderType | Gets the Type of the control associated with the attribute. This property is read-only. |
![]() | TypeId |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | This API supports the product infrastructure and is not intended to be used directly from your code. Gets a value indicating whether the current ControlBuilderAttribute is identical to the specified object. (Overrides Attribute.Equals(Object).) |
![]() | GetHashCode() | This API supports the product infrastructure and is not intended to be used directly from your code. Returns the hash code of the ControlBuilderAttribute object. (Overrides Attribute.GetHashCode().) |
![]() | GetType() | |
![]() | IsDefaultAttribute() | This API supports the product infrastructure and is not intended to be used directly from your code. Determines whether the current control builder is the default.(Overrides Attribute.IsDefaultAttribute().) |
![]() | Match(Object) | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | Default | This API supports the product infrastructure and is not intended to be used directly from your code. Specifies the new ControlBuilderAttribute object. By default, the new object is set to null. This field is read-only. |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | 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) | 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) | Provides access to properties and methods exposed by an object.(Inherited from Attribute.) |
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>
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





