某些控件位于 UpdatePanel 之外,无法实现异步回送,或者由于 UpdatePanel 的 UpdateMode 和 ChildrenAsTriggers 设置禁止了该控件对该 UpdatePanel 的异步回送。此时照样可以通过 AsyncPostBackTrigger 来实现异步回送。
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
Button1 位于 UpdatePanel 之外,默认情况下单击该按钮会产生整页回送,现在在 UpdatePanel 中添加了 Trigger,单击该按钮产生的同样是异步回送,AsyncPostBackTrigger 只有两个属性:ControlID 和 EventName,如果您不能确信 EventName 的值,可以在 Design 视图中通过对属性值的选择来进行设置。
--------------------
某些控件因位于 UpdatePanel 中,所以它是异步回送的,某些特殊情况下,我们却希望该控件实现整页回送。
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
此时我们再单击 Button1 将出现页面闪烁,说明实现了整页回送。PostBackTrigger 只有一个属性:ControlID。