UpdatePanel.CreateContentTemplateContainer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Control コントロールの内容を定義する子コントロールのコンテナーとして機能する UpdatePanel オブジェクトを作成します。
protected:
virtual System::Web::UI::Control ^ CreateContentTemplateContainer();
protected virtual System.Web.UI.Control CreateContentTemplateContainer ();
abstract member CreateContentTemplateContainer : unit -> System.Web.UI.Control
override this.CreateContentTemplateContainer : unit -> System.Web.UI.Control
Protected Overridable Function CreateContentTemplateContainer () As Control
戻り値
Control コントロールの内容の UpdatePanel コンテナー。
例
次の例は、カスタム UpdatePanel コントロールのメソッドをCreateContentTemplateContainerオーバーライドして、パネルのコンテンツの<fieldset>
要素を<legend>
常にレンダリングする方法を示しています。 カスタム UpdatePanel コントロールは、要素内の文字列リテラルという名前 GroupingText
のパブリック プロパティを <legend>
定義します。
名前の付いたCustomUpdatePanel
カスタム UpdatePanel コントロールは、メソッドからUpdatePanel派生し、オーバーライドしますCreateContentTemplateContainer。 クラスのソース コードを CustomUpdatePanel
Web サイトの App_Code フォルダーに配置します。
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SamplesCS
{
public class CustomUpdatePanel : System.Web.UI.UpdatePanel
{
public CustomUpdatePanel()
{
}
private String _groupingText;
public String GroupingText
{
get { return _groupingText; }
set { _groupingText = value; }
}
protected override Control CreateContentTemplateContainer()
{
MyContentTemplateContainer myContentTemplateContainer =
new MyContentTemplateContainer(_groupingText);
return myContentTemplateContainer;
}
private sealed class MyContentTemplateContainer : Control
{
private String _displayText;
public MyContentTemplateContainer(string groupingText)
{
_displayText = groupingText;
}
protected override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Fieldset);
writer.RenderBeginTag(HtmlTextWriterTag.Legend);
writer.Write(_displayText);
writer.RenderEndTag();
base.Render(writer);
writer.RenderEndTag();
}
}
}
}
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace SamplesVB
Public Class CustomUpdatePanel : Inherits System.Web.UI.UpdatePanel
Public CustomUpdatePanel()
Private _groupingText As String
Public Property GroupingText() As String
Get
Return _groupingText
End Get
Set(ByVal value As String)
_groupingText = value
End Set
End Property
Protected Overrides Function CreateContentTemplateContainer() As Control
Dim myContentTemplateContainer As MyContentTemplateContainer
myContentTemplateContainer = New MyContentTemplateContainer(_groupingText)
Dim myControl As Control
myControl = myContentTemplateContainer
Return myControl
End Function
Private NotInheritable Class MyContentTemplateContainer : Inherits Control
Private _displayText As String
Public Sub New(ByVal groupingText As String)
_displayText = groupingText
End Sub
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
writer.RenderBeginTag(HtmlTextWriterTag.Fieldset)
writer.RenderBeginTag(HtmlTextWriterTag.Legend)
writer.Write(_displayText)
writer.RenderEndTag()
MyBase.Render(writer)
writer.RenderEndTag()
End Sub
End Class
End Class
End Namespace
カスタム UpdatePanel コントロールは、コントロールと同様にページで UpdatePanel 使用されます。 次の例は、カスタム UpdatePanel コントロールを含むページを示しています。
<%@ Page Language="C#" %>
<%@ Register Namespace="SamplesCS" TagPrefix="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>CreateContentTemplateContainer Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<Samples:CustomUpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
GroupingText="This is an UpdatePanel."
runat="server">
<ContentTemplate>
<asp:Calendar ID="Calendar1"
runat="server" />
</ContentTemplate>
</Samples:CustomUpdatePanel>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Register Namespace="SamplesCS" TagPrefix="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>CreateContentTemplateContainer Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<Samples:CustomUpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
GroupingText="This is an UpdatePanel."
runat="server">
<ContentTemplate>
<asp:Calendar ID="Calendar1"
runat="server" />
</ContentTemplate>
</Samples:CustomUpdatePanel>
</div>
</form>
</body>
</html>
注釈
このメソッドは、コントロールを拡張 UpdatePanel するコントロール開発者が使用することを目的としています。 たとえば、派生クラスでは、コントロールのコンテンツのコンテナーとして機能する別のルート コントロールを UpdatePanel 提供できます。 既定の実装では、オブジェクトが Control 返されます。