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 控件允许用户输入搜索词以在 Products Northwind 数据库的表中查找。 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触发器。 作为更新面板触发器的控件会导致在异步回发后刷新面板的内容。 定义异步触发器控件在以下情况下很有用:

  • 对于面板外部的控件。

  • 对于当 属性为 false时位于面板中的ChildrenAsTriggers控件。

  • 对于嵌套面板内的控件,以便刷新父面板。

控件引用的 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 控件的字符串表示形式。

适用于

另请参阅