jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
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

  

   
posted on 2008-04-30 11:22  jackyrong的世界  阅读(646)  评论(0编辑  收藏  举报