UpdatePanel.CreateContentTemplateContainer Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto Control che svolge la funzione di contenitore per i controlli figlio che definiscono il contenuto del controllo 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
Restituisce
Contenitore Control per il contenuto del controllo UpdatePanel.
Esempio
Nell'esempio seguente viene illustrato come eseguire l'override del metodo in un controllo personalizzato UpdatePanel per eseguire sempre il CreateContentTemplateContainer rendering degli <fieldset>
elementi e <legend>
per il contenuto del pannello. Il controllo personalizzato definisce una proprietà pubblica denominata GroupingText
che è un valore letterale UpdatePanel stringa all'interno dell'elemento<legend>
.
Un controllo personalizzato UpdatePanel denominato CustomUpdatePanel
deriva da UpdatePanel e esegue l'override del CreateContentTemplateContainer metodo. Inserire il CustomUpdatePanel
codice sorgente della classe nella cartella App_Code del sito Web.
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
Il controllo personalizzato UpdatePanel viene usato nella pagina esattamente come è il UpdatePanel controllo. Nell'esempio seguente viene illustrata una pagina contenente il controllo personalizzato 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>
Commenti
Questo metodo è destinato all'uso da parte degli sviluppatori di controlli che vogliono estendere il UpdatePanel controllo. Ad esempio, nelle classi derivate, è possibile fornire un controllo radice diverso che funge da contenitore per il UpdatePanel contenuto del controllo. L'implementazione predefinita restituisce un Control oggetto.