TemplateDefinition クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
デザイン時に Web サーバー コントロールのテンプレート要素を定義するプロパティおよびメソッドを提供します。
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
- 継承
例
次のコード例では、 クラスからカスタム クラスを派生させる方法を ControlDesigner 示します。 このコントロール デザイナーでは、使用可能な 4 つのテンプレートを含むコントロールがサポートされています。
これを試すには、System.Design.dll アセンブリへの参照を追加し、コードをコンパイルしてから、Visual Studio 2005 などのデザイン ホストでデザイン ビューのページを確認します。 コントロールを選択し、変更するテンプレートを選択するアクション リストをクリックし、ドラッグ アンド ドロップ機能を使用してコントロールをテンプレートに移動します。
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>
注釈
クラスは TemplateDefinition 、Visual Studio 2005 などのデザイン ホストでテンプレート 化されたコントロールのサポートを提供する際に使用するコントロール デザイナーから継承および拡張できる基本テンプレート定義クラスを提供します。 デザイン ホストは、 クラスのプロパティとメソッドを TemplateDefinition 使用して、デザイン時のテンプレートの作成と編集を容易にします。
コンストラクター
TemplateDefinition(ControlDesigner, String, Object, String) |
指定したデザイナー、テンプレート名、テンプレート、およびプロパティ名を使用して、TemplateDefinition クラスの新しいインスタンスを初期化します。 |
TemplateDefinition(ControlDesigner, String, Object, String, Boolean) |
指定したデザイナー、テンプレート名、テンプレート、プロパティ名を使用して、さらに、テンプレート コンテンツを Web サーバー コントロールに限定するかどうかを指定して、TemplateDefinition クラスの新しいインスタンスを初期化します。 |
TemplateDefinition(ControlDesigner, String, Object, String, Style) |
指定したデザイナー、テンプレート名、テンプレート、プロパティ名、および TemplateDefinition オブジェクトを使用して、Style クラスの新しいインスタンスを初期化します。 |
TemplateDefinition(ControlDesigner, String, Object, String, Style, Boolean) |
指定したデザイナー、テンプレート名、テンプレート、プロパティ名、TemplateDefinition オブジェクトを使用して、さらに、コンテンツを Web サーバー コントロールに限定するかどうかを指定して、Style クラスの新しいインスタンスを初期化します。 |
プロパティ
AllowEditing |
テンプレート コンテンツを編集できるかどうかを示す値を取得します。 |
Content |
テンプレート コンテンツを表す HTML マークアップを取得または設定します。 |
Designer |
関連付けられたデザイナー コンポーネントを取得します。 (継承元 DesignerObject) |
Name |
オブジェクトの名前を取得します。 (継承元 DesignerObject) |
Properties |
オブジェクトのプロパティを取得します。 (継承元 DesignerObject) |
ServerControlsOnly |
テンプレート コンテンツを、TemplateDefinition コンストラクターで設定された Web サーバー コントロールに限定するかどうかを示す値を取得します。 このプロパティは読み取り専用です。 |
Style |
TemplateDefinition コンストラクターで設定されたテンプレートに適用するスタイルを取得します。 このプロパティは読み取り専用です。 |
SupportsDataBinding |
テンプレートがデータ バインディングをサポートするかどうかを示す値を取得または設定します。 |
TemplatedObject |
テンプレートの配置されているコンポーネントを取得します。 このプロパティは読み取り専用です。 |
TemplatePropertyName |
プロパティ グリッド内にデザイン ホストが表示するテンプレートのプロパティ名を取得します。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetService(Type) |
指定した型で識別されるサービスをデザイン ホストから取得します。 (継承元 DesignerObject) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
IServiceProvider.GetService(Type) |
このメンバーの詳細については、「GetService(Type)」をご覧ください。 (継承元 DesignerObject) |
拡張メソッド
適用対象
こちらもご覧ください
.NET