ControlBuilderAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy ControlBuilder osztályt ad meg, amely egyéni vezérlőt hoz létre a ASP.NET elemzőben. Ez az osztály nem örökölhető.
public ref class ControlBuilderAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class ControlBuilderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type ControlBuilderAttribute = class
inherit Attribute
Public NotInheritable Class ControlBuilderAttribute
Inherits Attribute
- Öröklődés
- Attribútumok
Példák
Az alábbi példakód egy testre szabott kijelölési listát hoz létre, amely a futtatáskor megadott értékek SelectedIndex alapján Message jelenít meg egy üzenetet. A végrehajtható fájl létrehozásához a következő parancssor szolgál.
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
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
<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
<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
End Class
End Namespace 'CustomControls
Az alábbi példa a fent definiált egyéni vezérlőt használja. A rendszer a futtatáskor hozzárendeli az értékeket és SelectedIndex az Message értékeket a megjelenítendő üzenet meghatározásához. Figyelje meg, hogy az irányelvben Register szereplő értékek az előző parancssort tükrözik.
<%@ 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>
Megjegyzések
Ez az attribútum határozza meg az egyéni vezérlők létrehozásához használni kívánt szerkesztőt Type az alábbi kódban látható módon:
[ControlBuilderAttribute(typeof(ControlBuilderType))]
Konstruktorok
| Name | Description |
|---|---|
| ControlBuilderAttribute(Type) |
Egyéni vezérlő vezérlőszerkesztőjének megadása. |
Mezők
| Name | Description |
|---|---|
| Default |
Megadja az új ControlBuilderAttribute objektumot. Alapértelmezés szerint az új objektum null értékűre van állítva. Ez a mező csak olvasható. |
Tulajdonságok
| Name | Description |
|---|---|
| BuilderType |
Lekéri az Type attribútumhoz társított vezérlőt. Ez a tulajdonság írásvédett. |
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Beolvas egy értéket, amely jelzi, hogy az áram ControlBuilderAttribute megegyezik-e a megadott objektummal. |
| GetHashCode() |
Az objektum kivonatkódját ControlBuilderAttribute adja vissza. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Meghatározza, hogy az aktuális vezérlőszerkesztő az alapértelmezett-e. |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |