1 当一个控件放在updatepanne外时,如果依然要用ajax的功能的话,可以这样搞,
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.ScriptManager1.RegisterAsyncPostBackControl(Me.Button1)
End Sub
即用代码的方式注册这个控件
2 updatepanel 的updatemode属性设置
比如
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="UpdatePanel1中的按钮" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="UpdatePanel2中的按钮" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button3" runat="server" Text="不在UpdatePanel中的按钮" /></div>
A 当页面上有多个updatepannel时,如果updatemode属性设置为always,则会被任何的异步postback
所刷新,若updatemode属性设置为conditional,则只会被位于该updatepannel自己内部的控件所触发更新。
比如上面,将updatepannel2的属性改为conditional,则updatepanel1中的更新不会反映到控件2中去。
但updatepannel2中的POSTABACKG更新也会反映到1中去,也就是说,如果设置为always的话,
则可以认为是最敏感的了,响应任何更新,即使是在任何updatepannel下的
B 如果要将updatepannel控件外的控件设置为可触发,可通过该updatepannel的triggers属性将控件设置
为asyncpostbacktrigger,如果要设置为不可触发,则设置为postbacktrigger
C 同样,要达到B的效果,但用代码的话,设置为可触发,用registerasyncpostbackcontrol
取消则用registerpostbackcontrol