UpdatePanel的简单用法(3) --客户端编程3

来源:互联网 发布:mac 如何设置桌面图标 编辑:程序博客网 时间:2024/06/05 17:41
PageRequestManager-pageLoading事件(客户端已经获得服务器结果,但是还没有对页面进行设置时触发)

参数类型:PageLoadingEventArgs
              dataItems属性: 获得服务器端的注册数据项
              panelsDeleting属性: 获得即将删除的UpdatePanel
              panelsUpdating属性:获得即将更新的UpdatePanel

注意:如果updatePanel是恰套使用
         外部的updatePanel刷新时候,里面的updatePanel会先删除内部的updatePanel然后再创建
        此时会有panelsDeleting属性

常见操作:
             提示更新的updatepanel
             获得服务的服务器端注册的数据项

PageRequestManager-pageLoading事件的例子,显示更新的 updatePanel

为了简化代码:用了个简单的用户控件
  1. <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="AJAXEnabledWebApplication1.WebUserControl1" %>
  2. <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
  3. <ContentTemplate>
  4. <%=DateTime.Now.ToString() %>
  5. </ContentTemplate>
  6. </asp:UpdatePanel>
cs 代码:
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. namespace AJAXEnabledWebApplication1
  12. {
  13.     public partial class WebUserControl1 : System.Web.UI.UserControl
  14.     {
  15.         public static Random random = new Random(DateTime.Now.Millisecond);
  16.         protected void Page_Load(object sender, EventArgs e)
  17.         {
  18.             if (random.NextDouble() > 0.5)
  19.             {
  20.                 this.UpdatePanel1.Update();
  21.             }
  22.         }
  23.     }
  24. }
页面代码:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx.cs" Inherits="AJAXEnabledWebApplication1.WebForm6" %>
  2. <%@ Register src="WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" >
  5. <head runat="server">
  6.     <title>无标题页</title>
  7. </head>
  8. <body>
  9.     <form id="form1" runat="server">
  10.     <asp:ScriptManager ID="ScriptManager1" runat="server">
  11.     </asp:ScriptManager>
  12.     
  13.     <br />
  14.     <uc1:WebUserControl1 ID="WebUserControl11" runat="server" />
  15.     <br />
  16.     <uc1:WebUserControl1 ID="WebUserControl12" runat="server" />
  17.     <br />
  18.      <uc1:WebUserControl1 ID="WebUserControl13" runat="server" />
  19.      <br />
  20.          <uc1:WebUserControl1 ID="WebUserControl14" runat="server" />
  21.          <br />
  22.              <uc1:WebUserControl1 ID="WebUserControl15" runat="server" />
  23.     <asp:Button ID="Button1" runat="server" Text="Button" /> 
  24.     <script type="text/javascript" language="javascript">
  25.     function hightLightPanels(panels,clear){
  26.         for(var i=0;i<panels.length;i++){
  27.            var panel=panels[i];
  28.            panel.style.border=clear?"solid 0px white":"solid 1px red";
  29.            panel.style.backgroundcolor=clear?"white":"#34ff44";
  30.         }
  31.     }
  32.     
  33.     Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(
  34.         function(sender, e){
  35.              //e.get_panelsUpdating() 获得需要更新的panels的数组
  36.              //Array.clone()获的一份copy
  37.             var panelsUpdating=Array.clone(e.get_panelsUpdating());
  38.             hightLightPanels(panelsUpdating);
  39.             window.setTimeout(
  40.             function(){
  41.                 hightLightPanels(panelsUpdating,true);
  42.             },2000
  43.             );
  44.         }
  45.     );
  46.     </script>
  47.     </form>
  48. </body>
  49. </html>
cs代码:
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.HtmlControls;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. namespace AJAXEnabledWebApplication1
  12. {
  13.     public partial class WebForm6 : System.Web.UI.Page
  14.     {
  15.         protected void Page_Load(object sender, EventArgs e)
  16.         {
  17.             //注册button为异步更新控件
  18.             ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.Button1);
  19.         }
  20.     }
  21. }
就这么多了

原创粉丝点击