AsyncPostBackTrigger 類別

定義

將控制項和控制項的選擇性事件定義為非同步回傳控制項觸發程序,這會導致重新整理 UpdatePanel 控制項。

public ref class AsyncPostBackTrigger : System::Web::UI::UpdatePanelControlTrigger
public class AsyncPostBackTrigger : System.Web.UI.UpdatePanelControlTrigger
type AsyncPostBackTrigger = class
    inherit UpdatePanelControlTrigger
Public Class AsyncPostBackTrigger
Inherits UpdatePanelControlTrigger
繼承

範例

下列範例示範如何以宣告方式新增 AsyncPostBackTrigger 控制項。 Button控制項外部的 UpdatePanel 控制項可讓使用者輸入搜尋字詞,以在 Northwind 資料庫的資料表中 Products 尋找。 GridView控制項內的 UpdatePanel 控制項會顯示結果。 控制項 Button 會指定為控制項的 UpdatePanel 非同步觸發程式。

<%@ 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 Button1_Click(object sender, EventArgs e)
    {
        SqlDataSource1.SelectParameters["SearchTerm"].DefaultValue = 
            Server.HtmlEncode(TextBox1.Text);
        Label1.Text = "Searching for '" + 
            Server.HtmlEncode(TextBox1.Text) + "'";
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>AsyncPostBackTrigger Example</title>
</head>
<body>
    <form id="form1" defaultbutton="Button1"
          defaultfocus="TextBox1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" Text="Submit" 
                        OnClick="Button1_Click" runat="server"  />
            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" 
                             runat="server">
                <Triggers>
                  <asp:AsyncPostBackTrigger ControlID="Button1" />
                </Triggers>
                <ContentTemplate>
                    <hr />
                    <asp:Label ID="Label1" runat="server"/>
                    <br />
                    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
                        AllowSorting="True"
                        DataSourceID="SqlDataSource1">
                        <EmptyDataTemplate>
                        Enter a search term.
                        </EmptyDataTemplate>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                        SelectCommand="SELECT [ProductName], [UnitsInStock] FROM 
                        [Alphabetical list of products] WHERE ([ProductName] LIKE 
                        '%' + @SearchTerm + '%')">
                        <SelectParameters>
                            <asp:Parameter Name="SearchTerm" Type="String" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </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 Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

        SqlDataSource1.SelectParameters("SearchTerm").DefaultValue = _
            Server.HtmlEncode(TextBox1.Text)
        Label1.Text = "Searching for '" & _
            Server.HtmlEncode(TextBox1.Text) & "'"

    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>AsyncPostBackTrigger Example</title>
</head>
<body>
    <form id="form1" defaultbutton="Button1"
          defaultfocus="TextBox1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" Text="Submit" 
                        OnClick="Button1_Click" runat="server"  />
            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" 
                             runat="server">
                <Triggers>
                  <asp:AsyncPostBackTrigger ControlID="Button1" />
                </Triggers>
                <ContentTemplate>
                    <hr />
                    <asp:Label ID="Label1" runat="server"/>
                    <br />
                    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
                        AllowSorting="True"
                        DataSourceID="SqlDataSource1">
                        <EmptyDataTemplate>
                        Enter a search term.
                        </EmptyDataTemplate>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                        SelectCommand="SELECT [ProductName], [UnitsInStock] FROM 
                        [Alphabetical list of products] WHERE ([ProductName] LIKE 
                        '%' + @SearchTerm + '%')">
                        <SelectParameters>
                            <asp:Parameter Name="SearchTerm" Type="String" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

備註

使用 AsyncPostBackTrigger 控制項可讓控制項成為控制項的觸發程式 UpdatePanel 。 更新面板觸發程式的控制項會在非同步回傳之後重新整理面板的內容。 在下列案例中,定義非同步觸發程式控制項很有用:

  • 對於面板外部的控制項。

  • 對於當 屬性為 falseChildrenAsTriggers 面板內的控制項。

  • 對於巢狀面板內的控制項,為了重新整理父面板。

控制項參考的 AsyncPostBackTrigger 控制項必須與它為觸發程式的更新面板位於相同的命名容器中。 不支援以其他命名容器中的控制項為基礎的觸發程式。

在設計工具中使用UpdatePanelTrigger 集合編輯器對話方塊,或在控制項中 UpdatePanel 以宣告方式建立 Triggers 元素,來新增 AsyncPostBackTrigger 控制項。 屬性 ControlID 是必要的,但 EventName 屬性是選擇性的。 EventName如果未指定 屬性, DefaultEventAttribute 則會使用 控制項的 屬性來判斷預設事件。 例如,控制項的預設事件 ButtonClick 事件。 屬性 EventName 不區分大小寫。

您也可以將命名容器參考為觸發程式。 在此情況下,造成回傳之容器中的所有子控制項都會被視為控制項的 UpdatePanel 觸發程式。

不支援以程式設計方式新增 AsyncPostBackTrigger 控制項。 若要以程式設計方式註冊回傳控制項,請使用 RegisterAsyncPostBackControl 控制項的 ScriptManager 方法。 然後在控制項回傳時呼叫 Update 控制項的 方法 UpdatePanel

如果您使用 和 AsyncPostBackTrigger 定義控制項 PostBackTrigger ,則會擲回例外狀況。

建構函式

AsyncPostBackTrigger()

初始化 AsyncPostBackTrigger 類別的新執行個體。

屬性

ControlID

取得或設定控制項的名稱,該控制項會觸發 UpdatePanel 控制項的非同步回傳。

EventName

取得或設定會觸發 UpdatePanel 控制項進行更新的回傳控制項事件。

Owner

取得對 UpdatePanel 設為目標之 UpdatePanelTrigger 控制項的參考。

(繼承來源 UpdatePanelTrigger)

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindTargetControl(Boolean)

搜尋在 ControlID 屬性中指定的控制項。

(繼承來源 UpdatePanelControlTrigger)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HasTriggered()

傳回值以指出是否要叫用觸發程序。

Initialize()

初始化 AsyncPostBackTrigger 控制項,並且判斷在觸發程序中命名的事件是否確實存在且有效。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnEvent(Object, EventArgs)

引發事件,該事件會觸發回傳並且重新整理 UpdatePanel 控制項。

ToString()

傳回目前 AsyncPostBackTrigger 控制項的字串表示。

適用於

另請參閱