Export (0) Print
Expand All

ScriptManager.RegisterAsyncPostBackControl Method

Registers a control as a trigger for asynchronous postbacks.

Namespace:  System.Web.UI
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public void RegisterAsyncPostBackControl(
	Control control
)

Parameters

control
Type: System.Web.UI.Control

The control to register for asynchronous postbacks.

ExceptionCondition
ArgumentNullException

control is null.

ArgumentException

The page is registered as an asynchronous postback control.

ArgumentException

The registered control does not implement the INamingContainer, IPostBackDataHandler, or IPostBackEventHandler interfaces.

The RegisterAsyncPostBackControl method enables you to register Web server controls as triggers so that they perform an asynchronous postback instead of a synchronous postback. When the ChildrenAsTriggers property of an UpdatePanel control is set to true (which is the default), postback controls inside the UpdatePanel control are automatically registered as asynchronous postback controls.

Use the RegisterAsyncPostBackControl method to register controls outside an UpdatePanel control as triggers for asynchronous postbacks, and to potentially update the content of an update panel. To update an UpdatePanel control programmatically, call the Update method.

You can add the trigger declaratively by using the Triggers element of the UpdatePanel control. In Visual Studio 2008, use the designer's UpdatePanelTrigger Collection Editor dialog box.

The following example shows how to call the RegisterAsyncPostBackControl method to register a Button control so that it causes an update of an UpdatePanel control's content. The Button control is not inside the UpdatePanel control. Two buttons are shown: Button1 and Button2. Button1 refreshes the content of the panel, and Button2 refreshes the whole page.

<%@ 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>

The following example shows how to call the RegisterAsyncPostBackControl method to register a user control so that it causes an update of an UpdatePanel control's content. The first example shows a page using the user control. The second example shows the user control.

<%@ 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>
<%@ Control Language="C#" ClassName="WebUserControl" %>

<script runat="server">
    public event EventHandler InnerClick
    {
        add
        {
            UCButton1.Click += value;
        }
        remove
        {
            UCButton1.Click -= value;
        }
    }
    public String Name
    {
        get
        {
            return UCTextBox1.Text;
        }
    }
</script>

<asp:Panel ID="UCPanel1" runat="server" GroupingText="User Control">
    Enter your name:
    <asp:TextBox ID="UCTextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="UCButton1" runat="server" Text="Submit" />
</asp:Panel>

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5

Community Additions

ADD
Show:
© 2014 Microsoft