使用Trigger让UpdatePanel外部的控件也支持无刷新异步调用
在AJAX的具体实践中,我们的页面典型的效果就是无刷新提交,或者可以说是局部刷新提交。
为了实现该功能,一般我们都会使用UpdatePanel这个控件,然后在其ContentTemplate中,放置我们标准的服务器控件。这些控件的使用方式和传统的没有什么两样,只不过,它们因为被放在了UpdatePanel中,所以,它们的事件都是异步调用的,也就是说不会引起页面的(PostBack)
但有一个问题就是,如果控件不放在UpdatePanel内部,有没有办法实现类似的功能呢?答案是:可以的。
这就是UpdatePanel的Trigger机制。
<Triggers>
<asp:AsyncPostBackTrigger ControlID="asyncButton" EventName="Click" />
<!--
这是指定某个按钮不要触发PostBack,哪怕该控件是放置在UpdatePanel外。
-->
</Triggers>
反过来说,是不是所有放在UpdatePanel中的控件都是通过异步的机制,而不能触发PostBack呢?答案是:不是
<asp:PostBackTrigger ControlID="postbutton" /><!--
这是指定某个按钮要触发PostBack。哪怕该控件是放置在UpdatePanel中。
-->