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 容器。
示例
以下示例演示如何重写 CreateContentTemplateContainer 自定义 UpdatePanel 控件中的方法,以便始终呈现 <fieldset>
面板内容的元素 <legend>
。 自定义 UpdatePanel 控件定义一 GroupingText
个名为该元素中的 <legend>
字符串文本的公共属性。
一个名为CustomUpdatePanel
“派生”UpdatePanel的自定义UpdatePanel控件,并重写该方法CreateContentTemplateContainer。 将 CustomUpdatePanel
类源代码放在网站的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 。