ScriptManager.RegisterAsyncPostBackControl(Control) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.