页面中用到了多个UpdatePanel,在使用过程中,发现任何一个在刷新的时候都会造成另一个也刷新。以前觉得不影响大局,一直也没太在意。
刚才仔细看了一下,发现UpdatePanel有个UpdateMode属性,默认设置是:Always,还有个选项叫:Conditional,改成这个。
然后有个Tirggers属性,可以用来设置触发其更新的所谓触发器集合,点击后会打开UpdatePanelTrigger集合编辑器,添加一个成员后,右侧可以设置其行为,有ControlID和EventName两个设置,ControlID可以选择页面中已有的控件,EventName用来选择相应的用来触发更新的事件,设置完成后,同一页面中的多个UpdatePanel就只会在指定的事件触发下才会刷新,而不是默认的Always时,只要页面有刷新就互相影响了。
而如果是用我以前的那种方式的话,就可以直接在不要和其他同时刷新的那个UpadtePanel上面加个属性UpdateMode="Conditional"。这就可以了。
例如:
<asp:UpdatePanel ID="udpn" runat="server" UpdateMode="Conditional">
<ContentTemplate>
异步刷新的内容
</ContentTemplate>
</asp:UpdatePanel>
如果还不懂的话,就去实践下。