AsyncPostBackTrigger和PostBackTrigger之间有什么区别?
AsyncPostBackTrigger和PostBackTrigger之间有什么区别?
默认情况下,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”时允许某些控件回发
这里有一篇博客文章解释了它们之间的不同:
在更新面板的模板中,有AsyncPostBackTrigger和PostBackTrigger两个选项。
默认情况下,位于更新面板外部的控件会触发正常的同步回发。AsyncPostBackTrigger将这些控件“连接”起来,以触发异步回发。相反,在更新面板中声明的控件默认会触发异步调用。PostBackTrigger则打破了这种机制,强制使该控件进行同步回发。
1. AsyncPostBackTrigger
这是强制执行页面异步提交的一种方法,也就是AJAX方式。数据将在没有完全提交的情况下进行交易。当您使用登录等功能时,您可以使用此功能。
例如,您有两个下拉菜单:国家和州。选择国家应加载州,并且在更改国家时应更改州。
在这种情况下,您可以使用AsyncPostBackTrigger,在不完全提交的情况下填充州 ddl。
2. PostBackTrigger
这不遵循AJAX功能的一种方式,而是通常的完全提交(与不使用UpdatePanel相同)。存在这样的情况,您不希望强制执行部分提交(如上面第1点所述)。
例如,您在UpdatePanel中使用FileUpload控件,通过异步提交不会向服务器获取任何值。它需要完全提交。在这种情况下,您应该使用此触发器。