Freigeben über


TemplateDefinition Klasse

Definition

Stellt Eigenschaften und Methoden bereit, die zur Entwurfszeit ein Vorlagenelement in einem Webserver-Steuerelement definieren.

public ref class TemplateDefinition : System::Web::UI::Design::DesignerObject
public class TemplateDefinition : System.Web.UI.Design.DesignerObject
type TemplateDefinition = class
    inherit DesignerObject
Public Class TemplateDefinition
Inherits DesignerObject
Vererbung
TemplateDefinition

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine benutzerdefinierte Klasse von der ControlDesigner -Klasse abgeleitet wird. Dieser Steuerelement-Designer unterstützt ein Steuerelement mit vier möglichen Vorlagen.

Fügen Sie zum Ausprobieren einen Verweis auf die System.Design.dll assembly hinzu, kompilieren Sie den Code, und sehen Sie sich dann in einem Designhost wie Visual Studio 2005 die Seite in der Entwurfsansicht an. Wählen Sie das Steuerelement aus, klicken Sie auf die Aktionsliste, um eine zu ändernde Vorlage auszuwählen, und verwenden Sie dann das Drag-and-Drop-Feature, um Steuerelemente in die Vorlage zu verschieben.

using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.Design;

namespace ASPNet.Design.Samples
{
    // Set an attribute reference to the designer, and define 
    // the HTML markup that the toolbox will write into the source.
    [Designer(typeof(TemplateGroupsSampleDesigner)),
        ToolboxData("<{0}:TemplateGroupsSample runat=server></{0}:TemplateGroupsSample>")]
    public sealed class TemplateGroupsSample : WebControl, INamingContainer
    {
        // Field for the templates
        private ITemplate[] _templates;

        // Constructor
        public TemplateGroupsSample()
        {
            _templates = new ITemplate[4];
        }

        // For each template property, set the designer attributes 
        // so the property does not appear in the property grid, but 
        // changes to the template are persisted in the control.
        [Browsable(false),
            PersistenceMode(PersistenceMode.InnerProperty)]
        public ITemplate Template1
        {
            get { return _templates[0]; }
            set { _templates[0] = value; }
        }
        [Browsable(false),
            PersistenceMode(PersistenceMode.InnerProperty)]
        public ITemplate Template2
        {
            get { return _templates[1]; }
            set { _templates[1] = value; }
        }
        [Browsable(false),
            PersistenceMode(PersistenceMode.InnerProperty)]
        public ITemplate Template3
        {
            get { return _templates[2]; }
            set { _templates[2] = value; }
        }
        [Browsable(false),
            PersistenceMode(PersistenceMode.InnerProperty)]
        public ITemplate Template4
        {
            get { return _templates[3]; }
            set { _templates[3] = value; }
        }

        protected override void CreateChildControls()
        {
            // Instantiate each template inside a panel
            // then add the panel to the Controls collection
            for (int i = 0; i < 4; i++)
            {
                Panel pan = new Panel();
                _templates[i].InstantiateIn(pan);
                this.Controls.Add(pan);
            }
        }
    }

    // Designer for the TemplateGroupsSample control
    public class TemplateGroupsSampleDesigner : ControlDesigner
    {
        TemplateGroupCollection col = null;

        public override void Initialize(IComponent component)
        {
            // Initialize the base
            base.Initialize(component);
            // Turn on template editing
            SetViewFlags(ViewFlags.TemplateEditing, true);
        }

        // Add instructions to the placeholder view of the control
        public override string GetDesignTimeHtml()
        {
            return CreatePlaceHolderDesignTimeHtml("Click here and use " +
                "the task menu to edit the templates.");
        }

        public override TemplateGroupCollection TemplateGroups
        {
            get
            {

                if (col == null)
                {
                    // Get the base collection
                    col = base.TemplateGroups;

                    // Create variables
                    TemplateGroup tempGroup;
                    TemplateDefinition tempDef;
                    TemplateGroupsSample ctl;

                    // Get reference to the component as TemplateGroupsSample
                    ctl = (TemplateGroupsSample)Component;

                    // Create a TemplateGroup
                    tempGroup = new TemplateGroup("Template Set A");

                    // Create a TemplateDefinition
                    tempDef = new TemplateDefinition(this, "Template A1", 
                        ctl, "Template1", true);

                    // Add the TemplateDefinition to the TemplateGroup
                    tempGroup.AddTemplateDefinition(tempDef);

                    // Create another TemplateDefinition
                    tempDef = new TemplateDefinition(this, "Template A2", 
                        ctl, "Template2", true);

                    // Add the TemplateDefinition to the TemplateGroup
                    tempGroup.AddTemplateDefinition(tempDef);

                    // Add the TemplateGroup to the TemplateGroupCollection
                    col.Add(tempGroup);

                    // Create another TemplateGroup and populate it
                    tempGroup = new TemplateGroup("Template Set B");
                    tempDef = new TemplateDefinition(this, "Template B1", 
                        ctl, "Template3", true);
                    tempGroup.AddTemplateDefinition(tempDef);
                    tempDef = new TemplateDefinition(this, "Template B2", 
                        ctl, "Template4", true);
                    tempGroup.AddTemplateDefinition(tempDef);

                    // Add the TemplateGroup to the TemplateGroupCollection
                    col.Add(tempGroup);
                }

                return col;
            }
        }

        // Do not allow direct resizing unless in TemplateMode
        public override bool AllowResize
        {
            get
            {
                if (this.InTemplateMode)
                    return true;
                else
                    return false;
            }
        }
    }
}
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design

Namespace ASPNet.Design.Samples

    ' Set an attribute reference to the designer, and define 
    ' the HTML markup that the toolbox will write into the source.
    <Designer(GetType(TemplateGroupsSampleDesigner)), _
        ToolboxData("<{0}:TemplateGroupsSample runat=server></{0}:TemplateGroupsSample>")> _
    Public Class TemplateGroupsSample
        Inherits WebControl
        Implements INamingContainer

        ' Field for the templates
        Private _templates() As ITemplate

        ' Constructor
        Public Sub New()
            ReDim _templates(4)
        End Sub

        ' For each template property, set the designer attributes 
        ' so the property does not appear in the property grid, but 
        ' changes to the template are persisted in the control.
        <Browsable(False), _
            PersistenceMode(PersistenceMode.InnerProperty)> _
        Public Property Template1() As ITemplate
            Get
                Return _templates(0)
            End Get
            Set(ByVal Value As ITemplate)
                _templates(0) = Value
            End Set
        End Property
        <Browsable(False), _
            PersistenceMode(PersistenceMode.InnerProperty)> _
        Public Property Template2() As ITemplate
            Get
                Return _templates(1)
            End Get
            Set(ByVal Value As ITemplate)
                _templates(1) = Value
            End Set
        End Property
        <Browsable(False), _
            PersistenceMode(PersistenceMode.InnerProperty)> _
        Public Property Template3() As ITemplate
            Get
                Return _templates(2)
            End Get
            Set(ByVal Value As ITemplate)
                _templates(2) = Value
            End Set
        End Property
        <Browsable(False), _
            PersistenceMode(PersistenceMode.InnerProperty)> _
        Public Property Template4() As ITemplate
            Get
                Return _templates(3)
            End Get
            Set(ByVal Value As ITemplate)
                _templates(3) = Value
            End Set
        End Property

        Protected Overrides Sub CreateChildControls()
            ' Instantiate the template inside the panel
            ' then add the panel to the Controls collection
            Dim i As Integer

            For i = 0 To 3
                Dim pan As New Panel()
                _templates(i).InstantiateIn(pan)
                Me.Controls.Add(pan)
            Next
        End Sub

    End Class

    ' Designer for the TemplateGroupsSample class
    Public Class TemplateGroupsSampleDesigner
        Inherits System.Web.UI.Design.ControlDesigner

        Private col As TemplateGroupCollection = Nothing

        Public Overrides Sub Initialize(ByVal Component As IComponent)
            ' Initialize the base
            MyBase.Initialize(Component)
            ' Turn on template editing
            SetViewFlags(ViewFlags.TemplateEditing, True)
        End Sub

        ' Add instructions to the placeholder view of the control
        Public Overloads Overrides Function GetDesignTimeHtml() As String
            Return CreatePlaceHolderDesignTimeHtml("Click here and use " & _
                "the task menu to edit the templates.")
        End Function

        Public Overrides ReadOnly Property TemplateGroups() As TemplateGroupCollection
            Get
                If IsNothing(col) Then
                    ' Get the base collection
                    col = MyBase.TemplateGroups

                    ' Create variables
                    Dim tempGroup As TemplateGroup
                    Dim tempDef As TemplateDefinition
                    Dim ctl As TemplateGroupsSample

                    ' Get reference to the component as TemplateGroupsSample
                    ctl = CType(Component, TemplateGroupsSample)

                    ' Create a TemplateGroup
                    tempGroup = New TemplateGroup("Template Set A")

                    ' Create a TemplateDefinition
                    tempDef = New TemplateDefinition(Me, "Template A1", ctl, "Template1", True)

                    ' Add the TemplateDefinition to the TemplateGroup
                    tempGroup.AddTemplateDefinition(tempDef)

                    ' Create another TemplateDefinition
                    tempDef = New TemplateDefinition(Me, "Template A2", ctl, "Template2", True)

                    ' Add the TemplateDefinition to the TemplateGroup
                    tempGroup.AddTemplateDefinition(tempDef)

                    ' Add the TemplateGroup to the TemplateGroupCollection
                    col.Add(tempGroup)

                    ' Create another TemplateGroup and populate it
                    tempGroup = New TemplateGroup("Template Set B")
                    tempDef = New TemplateDefinition(Me, "Template B1", ctl, "Template3", True)
                    tempGroup.AddTemplateDefinition(tempDef)
                    tempDef = New TemplateDefinition(Me, "Template B2", ctl, "Template4", True)
                    tempGroup.AddTemplateDefinition(tempDef)

                    ' Add the TemplateGroup to the TemplateGroupCollection
                    col.Add(tempGroup)
                End If

                Return col
            End Get
        End Property

        ' Do not allow direct resizing unless in TemplateMode
        Public Overrides ReadOnly Property AllowResize() As Boolean
            Get
                If Me.InTemplateMode Then
                    Return True
                Else
                    Return False
                End If
            End Get
        End Property
    End Class
End Namespace
<%@ Page Language="VB" %>
<%@ Register TagPrefix="aspSample" 
    Namespace="ASPNet.Design.Samples" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
       <aspSample:TemplateGroupsSample runat="server" ID="TGSample1">
       </aspSample:TemplateGroupsSample>
    
    </div>
    </form>
</body>
</html>

Hinweise

Die TemplateDefinition -Klasse stellt eine Basisvorlagendefinitionsklasse bereit, die von einem Steuerelement-Designer geerbt und erweitert werden kann, um unterstützung für vorlagenbasierte Steuerelemente in einem Designhost wie Visual Studio 2005 bereitzustellen. Ein Designhost verwendet die Eigenschaften und Methoden der -Klasse, um das TemplateDefinition Erstellen und Bearbeiten einer Vorlage zur Entwurfszeit zu erleichtern.

Konstruktoren

TemplateDefinition(ControlDesigner, String, Object, String)

Initialisiert eine neue Instanz der TemplateDefinition-Klasse mit dem bereitgestellten Designer, dem Vorlagennamen, der Vorlage und dem Eigenschaftennamen.

TemplateDefinition(ControlDesigner, String, Object, String, Boolean)

Initialisiert mit dem bereitgestellten Designer, dem Vorlagennamen, der Vorlage, dem Eigenschaftennamen und der Angabe, ob der Vorlageninhalt auf Webserver-Steuerelemente beschränkt werden soll, eine neue Instanz der TemplateDefinition-Klasse.

TemplateDefinition(ControlDesigner, String, Object, String, Style)

Initialisiert mit dem bereitgestellten Designer, dem Vorlagennamen, der Vorlage, dem Eigenschaftennamen und dem TemplateDefinition-Objekt eine neue Instanz der Style-Klasse.

TemplateDefinition(ControlDesigner, String, Object, String, Style, Boolean)

Initialisiert mit dem bereitgestellten Designer, dem Vorlagennamen, der Vorlage, dem Eigenschaftennamen, dem TemplateDefinition-Objekt und der Angabe, ob der Inhalt auf Webserver-Steuerelemente beschränkt werden soll, eine neue Instanz der Style-Klasse.

Eigenschaften

AllowEditing

Ruft einen Wert ab, der angibt, ob die Vorlage die Bearbeitung ihres Inhalts zulassen soll.

Content

Ruft das HTML-Markup ab, das den Inhalt der Vorlage darstellt, oder legt dieses fest.

Designer

Ruft die zugeordnete Designerkomponente ab.

(Geerbt von DesignerObject)
Name

Ruft den Namen des Objekts ab.

(Geerbt von DesignerObject)
Properties

Ruft die Eigenschaften des Objekts ab.

(Geerbt von DesignerObject)
ServerControlsOnly

Ruft einen Wert ab, der angibt, ob die Vorlage wie im TemplateDefinition-Konstruktor festgelegt den Inhalt auf Webserver-Steuerelemente beschränken soll. Diese Eigenschaft ist schreibgeschützt.

Style

Ruft den Stil ab, der wie im TemplateDefinition-Konstruktor festgelegt auf die Vorlage angewendet werden soll. Diese Eigenschaft ist schreibgeschützt.

SupportsDataBinding

Ruft einen Wert ab, der angibt, ob die Vorlage die Datenbindung unterstützt, oder legt diesen fest.

TemplatedObject

Ruft die Komponente ab, in der sich die Vorlage befindet. Diese Eigenschaft ist schreibgeschützt.

TemplatePropertyName

Ruft den Eigenschaftennamen für die Vorlage ab, die der Entwurfshost im Eigenschaftenraster anzeigen soll.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetService(Type)

Ruft einen Dienst vom Entwurfshost entsprechend dem bereitgestellten Typ ab.

(Geerbt von DesignerObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IServiceProvider.GetService(Type)

Eine Beschreibung dieses Elements finden Sie unter GetService(Type).

(Geerbt von DesignerObject)

Erweiterungsmethoden

GetKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Ruft eine Enumeration von Diensten vom Typ serviceType ab IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Ruft eine Enumeration von Diensten vom Typ T ab IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Ruft einen Dienst vom Typ serviceType aus ab IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

CreateAsyncScope(IServiceProvider)

Erstellt eine neue AsyncServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

CreateScope(IServiceProvider)

Erstellt eine neue IServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

GetRequiredService(IServiceProvider, Type)

Ruft einen Dienst vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetRequiredService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetServices(IServiceProvider, Type)

Ruft eine Enumeration von Diensten vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetServices<T>(IServiceProvider)

Ruft eine Enumeration von Diensten vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetFakeLogCollector(IServiceProvider)

Ruft das Objekt ab, das Protokolldatensätze sammelt, die an die gefälschte Protokollierung gesendet wurden.

GetFakeRedactionCollector(IServiceProvider)

Ruft die gefälschte Redactor collector-Instanz aus dem Abhängigkeitsinjektionscontainer ab.

Gilt für:

Weitere Informationen