文章出處

來源:VS2012幫助文檔

用途:

將控件注冊為異步回發的觸發器

語法:

public void RegisterAsyncPostBackControl(
    Control control
)

參數

control
類型: System.Web.UI. Control
要為異步回發注冊的控件

備注:

使用 RegisterAsyncPostBackControl 方法可將 Web 服務器控件注冊為觸發器,以使其執行異步回發而不是同步回發。 UpdatePanel 控件的 ChildrenAsTriggers 屬性設置為 true(默認值)時, UpdatePanel 控件內的回發控件會自動注冊為異步回發控件。

使用 RegisterAsyncPostBackControl 方法可將 UpdatePanel 控件外部的控件注冊為異步回發的觸發器,并可能會對更新面板的內容進行更新。 若要以編程方式更新 UpdatePanel 控件,請調用 Update 方法。

可以使用 UpdatePanel 控件的 Triggers 元素,以聲明方式添加觸發器。 在 Visual Studio 2010 中,使用設計器的“UpdatePanelTrigger 集合編輯器”對話框。

示例

(1)下面的示例演示如何調用 RegisterAsyncPostBackControl 方法來注冊 Button 控件,以便更新 UpdatePanel 控件的內容。 Button 控件不在 UpdatePanel 控件內。 顯示兩個按鈕:Button1Button2 Button1 刷新面板的內容,Button2 刷新整個頁面。

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

(2)下面的示例演示如何調用 RegisterAsyncPostBackControl 方法來注冊用戶控件,以便更新 UpdatePanel 控件的內容。 第一個示例顯示使用該用戶控件的頁面。 第二個示例顯示該用戶控件。

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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()