UpdatePanel.CreateContentTemplateContainer Metoda

Definicja

Control Tworzy obiekt, który działa jako kontener dla kontrolek podrzędnych definiujących UpdatePanel zawartość kontrolki.

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

Zwraca

Control

Control Kontener zawartości kontrolkiUpdatePanel.

Przykłady

W poniższym przykładzie pokazano, jak zastąpić metodę CreateContentTemplateContainer w kontrolce niestandardowej UpdatePanel , aby zawsze renderować <fieldset> elementy i <legend> dla zawartości panelu. Kontrolka niestandardowa UpdatePanel definiuje właściwość publiczną o nazwie GroupingText , która jest literałem ciągu wewnątrz <legend> elementu.

UpdatePanel Niestandardowa kontrolka o nazwie CustomUpdatePanel pochodzi z UpdatePanel metody i zastępuje metodę CreateContentTemplateContainer . CustomUpdatePanel Umieść kod źródłowy klasy w folderze App_Code witryny sieci 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

Kontrolka niestandardowa UpdatePanel jest używana na stronie tak samo jak kontrolka UpdatePanel . Poniższy przykład przedstawia stronę zawierającą kontrolkę niestandardową 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>

Uwagi

Ta metoda jest przeznaczona do użycia przez deweloperów kontrolek, którzy chcą rozszerzyć kontrolkę UpdatePanel . Na przykład w klasach pochodnych można podać inną kontrolkę główną działającą jako kontener zawartości UpdatePanel kontrolki. Domyślna implementacja zwraca Control obiekt.

Dotyczy

Zobacz też