Sdílet prostřednictvím


ScriptManager.RegisterAsyncPostBackControl(Control) Metoda

Definice

Zaregistruje ovládací prvek jako aktivační událost pro asynchronní postbacky.

public:
 virtual void RegisterAsyncPostBackControl(System::Web::UI::Control ^ control);
public void RegisterAsyncPostBackControl (System.Web.UI.Control control);
abstract member RegisterAsyncPostBackControl : System.Web.UI.Control -> unit
override this.RegisterAsyncPostBackControl : System.Web.UI.Control -> unit
Public Sub RegisterAsyncPostBackControl (control As Control)

Parametry

control
Control

Ovládací prvek, který se má zaregistrovat pro asynchronní postbacky.

Výjimky

control je null.

Stránka je zaregistrovaná jako asynchronní ovládací prvek postback.

-nebo-

Registrovaný ovládací prvek neimplementuje INamingContainerrozhraní , IPostBackDataHandlerani IPostBackEventHandler rozhraní.

Příklady

Následující příklad ukazuje, jak volat metodu RegisterAsyncPostBackControl Button k registraci ovládacího prvku tak, aby způsobovat aktualizaci UpdatePanel obsahu ovládacího prvku. Ovládací Button prvek není uvnitř UpdatePanel ovládacího prvku. Zobrazí se dvě tlačítka: Button1 a Button2. Button1 aktualizuje obsah panelu a Button2 aktualizuje celou stránku.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager1.RegisterAsyncPostBackControl(Button1);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Label1.Text = "Page refreshed.";
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server"/>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <fieldset>
        <legend>Update Panel</legend>
        <asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
        </fieldset>
        </ContentTemplate>
        </asp:UpdatePanel>
        <asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
        <asp:Button ID="Button2" runat="server" Text="Refresh Page" OnClick="Button2_Click" />
        </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C'DTD XHTML 1.0 Transitional'EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
        ScriptManager1.RegisterAsyncPostBackControl(Button1)
    End Sub

    Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString()
    End Sub

    Protected Sub Button2_Click(ByVal Sender As Object, ByVal E As EventArgs)
        Label1.Text = "Page refreshed."
    End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server"/>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <fieldset>
        <legend>Update Panel</legend>
        <asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
        </fieldset>
        </ContentTemplate>
        </asp:UpdatePanel>
        <asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
        <asp:Button ID="Button2" runat="server" Text="Refresh Page" OnClick="Button2_Click" />
        </div>
    </form>
</body>
</html>

Následující příklad ukazuje, jak volat metodu RegisterAsyncPostBackControl pro registraci uživatelského ovládacího prvku tak, aby způsobovali aktualizaci UpdatePanel obsahu ovládacího prvku. První příklad ukazuje stránku pomocí uživatelského ovládacího prvku. Druhý příklad ukazuje uživatelský ovládací prvek.


<%@ Page Language="C#" %>

<%@ Register Src="Controls/WebUserControl.ascx" TagName="WebUserControl"
    TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager1.RegisterAsyncPostBackControl(WebUserControl1);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
    }
    
    protected void WebUserControl1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString() +
            ".  Welcome " + WebUserControl1.Name + ". ";
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <fieldset>
                        <legend>Update Panel</legend>
                        <asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
                    </fieldset>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
            <uc1:webusercontrol id="WebUserControl1" runat="server" oninnerclick="WebUserControl1_Click" />
        </div>
    </form>
</body>
</html>

<%@ Page Language="VB" %>

<%@ Register Src="Controls/WebUserControl.ascx" TagName="WebUserControl"
    TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-'W3C'DTD XHTML 1.0 Transitional'EN" 
  "http:'www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
        ScriptManager1.RegisterAsyncPostBackControl(WebUserControl1)
    End Sub
    

    Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString()
    End Sub
    
    
    Protected Sub WebUserControl1_Click(ByVal Sender As Object, ByVal E As EventArgs)
        Label1.Text = "Panel refreshed at " + DateTime.Now.ToString() + _
            ".  Welcome " + WebUserControl1.Name + ". "
    End Sub
    

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ScriptManager RegisterAsyncPostBackControl Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"/>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <fieldset>
                        <legend>Update Panel</legend>
                        <asp:Label ID="Label1" runat="server">Initial postback occurred.</asp:Label>
                    </fieldset>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:Button ID="Button1" runat="server" Text="Update Panel" OnClick="Button1_Click" />
            <uc1:webusercontrol id="WebUserControl1" runat="server" oninnerclick="WebUserControl1_Click" />
        </div>
    </form>
</body>
</html>

Poznámky

Metoda RegisterAsyncPostBackControl umožňuje zaregistrovat ovládací prvky webového serveru jako triggery, aby místo synchronního postbacku prováděly asynchronní postback. ChildrenAsTriggers Když je vlastnost UpdatePanel ovládacího prvku nastavená na true (což je výchozí), ovládací prvky postback uvnitř UpdatePanel ovládacího prvku se automaticky zaregistrují jako asynchronní ovládací prvky postback.

RegisterAsyncPostBackControl Pomocí metody zaregistrujte ovládací prvky mimo UpdatePanel ovládací prvek jako triggery pro asynchronní postbacky a potenciálně aktualizujte obsah aktualizačního panelu. Pokud chcete ovládací prvek aktualizovat UpdatePanel programově, zavolejte metodu Update .

Trigger můžete deklarativním způsobem přidat pomocí Triggers elementu UpdatePanel ovládacího prvku. V Visual Studio použijte dialogové okno Editor kolekce UpdatePanelTrigger návrháře.

Platí pro

Viz také