AsyncPostBackTrigger 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义一个控件,并将该控件的可选事件定义为导致 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控件的 属性用于确定默认事件。 例如,控件的默认事件 Button 是 Click 事件。 属性 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 控件的字符串表示形式。 |