异步回发触发器和回发触发器有什么区别?

28

AsyncPostBackTrigger和PostBackTrigger之间有什么区别?

4个回答

14

默认情况下,UpdatePanel内的控件会导致部分页面更新,而UpdatePanel外的控件会导致整个页面回发。使用这些触发器可以根据需要更改此行为。

来自 http://seminaarit.codezone.fi/video/devdays-2007/track1/2/2-ASP-dotNET_AJAX_Extensions.ppt: (链接已失效)

AsyncPostBackTrigger

  • 将回发转换为异步回调 * 通常用于在UpdatePanel之外的控件回发时触发更新 * 如果ChildrenAsTriggers =“false”,则可用于指定哪些UpdatePanel内的控件应该回调而非回发

PostBackTrigger

  • 使UpdatePanel内的控件能够回发 * 通常用于当ChildrenAsTriggers =“true”时允许某些控件回发

11

这里有一篇博客文章解释了它们之间的不同:

在更新面板的模板中,有AsyncPostBackTrigger和PostBackTrigger两个选项。

默认情况下,位于更新面板外部的控件会触发正常的同步回发。AsyncPostBackTrigger将这些控件“连接”起来,以触发异步回发。相反,在更新面板中声明的控件默认会触发异步调用。PostBackTrigger则打破了这种机制,强制使该控件进行同步回发。


7

1. AsyncPostBackTrigger

这是强制执行页面异步提交的一种方法,也就是AJAX方式。数据将在没有完全提交的情况下进行交易。当您使用登录等功能时,您可以使用此功能。

例如,您有两个下拉菜单:国家和州。选择国家应加载州,并且在更改国家时应更改州。

在这种情况下,您可以使用AsyncPostBackTrigger,在不完全提交的情况下填充州 ddl。

2. PostBackTrigger

这不遵循AJAX功能的一种方式,而是通常的完全提交(与不使用UpdatePanel相同)。存在这样的情况,您不希望强制执行部分提交(如上面第1点所述)。

例如,您在UpdatePanel中使用FileUpload控件,通过异步提交不会向服务器获取任何值。它需要完全提交。在这种情况下,您应该使用此触发器。


1
假设Button1在您的Update面板内,而Button2在Update面板外。 现在让我们了解一下,在Update面板外的控件正在进行异步回发,而在Update面板内的控件则创建同步回发。
因此,由于两个按钮都在一个表单中,Button1在Update面板内,而Button2在其外部。 因此,通过将Button2的ID和其事件名称提供给Asyncpostback触发器,如示例所示,我们假设现在它将与Update面板一样创建同步回发。

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button2" EventName="Button2_Click" /> <asp:PostBackTrigger ControlID=""Button1" /> </Triggers> </asp:UpdatePanel> - ankit paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接