TemplateDefinition Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia właściwości i metody definiujące element szablonu w kontrolce serwera sieci Web w czasie projektowania.
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
- Dziedziczenie
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć klasę niestandardową ControlDesigner z klasy . Ten projektant kontrolek obsługuje kontrolkę z czterema możliwymi szablonami.
Aby go wypróbować, dodaj odwołanie do zestawu System.Design.dll, skompiluj kod, a następnie na hoście projektu, takim jak Visual Studio 2005, przyjrzyj się stronie w widoku projektowym. Wybierz kontrolkę, kliknij listę akcji, aby wybrać szablon do zmodyfikowania, a następnie użyj funkcji przeciągania i upuszczania, aby przenieść kontrolki do szablonu.
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>
Uwagi
Klasa TemplateDefinition udostępnia klasę definicji szablonu podstawowego, którą można dziedziczyć i rozszerzać do projektanta kontrolek w celu zapewnienia obsługi szablonowych kontrolek na hoście projektu, takim jak Visual Studio 2005. Host projektu używa właściwości i metod TemplateDefinition klasy, aby ułatwić tworzenie i edytowanie szablonu w czasie projektowania.
Konstruktory
TemplateDefinition(ControlDesigner, String, Object, String) |
Inicjuje TemplateDefinition nowe wystąpienie klasy przy użyciu podanego projektanta, nazwy szablonu, szablonu i nazwy właściwości. |
TemplateDefinition(ControlDesigner, String, Object, String, Boolean) |
Inicjuje nowe wystąpienie klasy przy użyciu dostarczonego TemplateDefinition projektanta, nazwy szablonu, szablonu, nazwy właściwości i ograniczenia zawartości szablonu do kontrolek serwera sieci Web. |
TemplateDefinition(ControlDesigner, String, Object, String, Style) |
Inicjuje TemplateDefinition nowe wystąpienie klasy przy użyciu podanego projektanta, nazwy szablonu, szablonu, nazwy właściwości i Style obiektu. |
TemplateDefinition(ControlDesigner, String, Object, String, Style, Boolean) |
Inicjuje nowe wystąpienie klasy przy użyciu dostarczonego TemplateDefinition projektanta, nazwy szablonu, szablonu, nazwy właściwości, Style obiektu i tego, czy ograniczyć zawartość do kontrolek serwera sieci Web. |
Właściwości
AllowEditing |
Pobiera wartość wskazującą, czy szablon powinien włączyć edytowanie jego zawartości. |
Content |
Pobiera lub ustawia znacznik HTML reprezentujący zawartość szablonu. |
Designer |
Pobiera skojarzony składnik projektanta. (Odziedziczone po DesignerObject) |
Name |
Pobiera nazwę obiektu. (Odziedziczone po DesignerObject) |
Properties |
Pobiera właściwości obiektu. (Odziedziczone po DesignerObject) |
ServerControlsOnly |
Pobiera wartość wskazującą, czy szablon powinien ograniczać zawartość do kontrolek serwera sieci Web zgodnie z ustawieniem w konstruktorze TemplateDefinition . Ta właściwość jest tylko do odczytu. |
Style |
Pobiera styl, który ma zostać zastosowany do szablonu zgodnie z zestawem w konstruktorze TemplateDefinition . Ta właściwość jest tylko do odczytu. |
SupportsDataBinding |
Pobiera lub ustawia wartość wskazującą, czy szablon obsługuje powiązanie danych. |
TemplatedObject |
Pobiera składnik, w którym znajduje się szablon. Ta właściwość jest tylko do odczytu. |
TemplatePropertyName |
Pobiera nazwę właściwości szablonu, który host projektu powinien wyświetlić w siatce właściwości. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetService(Type) |
Pobiera usługę z hosta projektu zgodnie z podanym typem. (Odziedziczone po DesignerObject) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
IServiceProvider.GetService(Type) |
Aby uzyskać opis tego elementu członkowskiego, zobacz GetService(Type). (Odziedziczone po DesignerObject) |
Metody rozszerzania
GetKeyedService<T>(IServiceProvider, Object) |
Pobiera usługę typu |
GetKeyedServices(IServiceProvider, Type, Object) |
Pobiera wyliczenie usług typu |
GetKeyedServices<T>(IServiceProvider, Object) |
Pobiera wyliczenie usług typu |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Pobiera usługę typu |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Pobiera usługę typu |
CreateAsyncScope(IServiceProvider) |
Tworzy nową AsyncServiceScope , która może służyć do rozwiązywania problemów z usługami o określonym zakresie. |
CreateScope(IServiceProvider) |
Tworzy nową IServiceScope , która może służyć do rozwiązywania problemów z usługami o określonym zakresie. |
GetRequiredService(IServiceProvider, Type) |
Pobierz usługę typu |
GetRequiredService<T>(IServiceProvider) |
Pobierz usługę typu |
GetService<T>(IServiceProvider) |
Pobierz usługę typu |
GetServices(IServiceProvider, Type) |
Pobierz wyliczenie usług typu |
GetServices<T>(IServiceProvider) |
Pobierz wyliczenie usług typu |
GetFakeLogCollector(IServiceProvider) |
Pobiera obiekt zbierający rekordy dziennika wysyłane do fałszywego rejestratora. |
GetFakeRedactionCollector(IServiceProvider) |
Pobiera fałszywe wystąpienie modułu zbierającego redactor z kontenera wstrzykiwania zależności. |