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