zoukankan      html  css  js  c++  java
  • 【ASP.NET】Ajax下UpdatePanel和Timer的综合应用

    Ajax框架,主要用于局部区域更新。更新范围小,往返数据量小,没有屏幕抖动,用户体验好。
    一般而言,使用在VS2005下使用Ajax框架,需要安装微软公司提供的:ASP.NET 2.0 AJAX Extensions 1.0.msi。在安装后,VS2005编辑器将Ajax框架集成进来,可以建立Ajax环境,主要体现为WebConfig中自动设置其配置。如果是VS2008,不需要安装扩展包,已被自动集成。

    使用Ajax框架,必然需要为整个框架环境设置一个脚本管理器(ScriptManager).

    ScriptManager控件:
    它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAXASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理等。

    主要属性和方法:

    属性/方法

    描述

    AllowCustomError

    和Web.config中的自定义错误配置区<customErrors>相联系,是否使用它,默认值为true

    AsyncPostBackErrorMessage

    异步回传发生错误时的自定义提示错误信息

    AsyncPostBackTimeout

    异步回传时超时限制,默认值为90,单位为秒

    EnablePartialRendering

    是否支持页面的局部更新,默认值为True,一般不需要修改

    ScriptMode

    指定ScriptManager发送到客户端的脚本的模式,有四种模式:Auto,Inherit,Debug,Release,默认值为Auto

    ScriptPath

    设置所有的脚本块的根目录,作为全局属性,包括自定义的脚本块或者引用第三方的脚本块。如果在Scripts中的<asp:ScriptReference/>标签中设置了Path属性,它将覆盖该属性。

    OnAsyncPostBackError

    异步回传发生异常时的服务端处理函数,在这里可以捕获一场信息并作相应的处理。

    OnResolveScriptReference

    指定ResolveScriptReference事件的服务器端处理函数,在该函数中可以修改某一条脚本的相关信息如路径、版本等。


    与区域设置相关的会使用到EnablePartialRendering属性,当设置为True时,表示仅对UpdatePanel区域范围内的部分刷新。如果设置为False,对整个页面刷新。

    UpdatePanel控件:
    属于Ajax框架中的控件,主要用于规划和配置更新区域。

    重要的属性如下:

    属性

    说明

    ChildrenAsTriggers

    UpdateMode属性为Conditional时,UpdatePanel中的子控件的异步回送是否会引发UpdatePanle的更新。

    RenderMode

    表示UpdatePanel最终呈现的HTML元素。Block(默认)表示<div>Inline表示<span>

    UpdateMode

    表示UpdatePanel的更新模式,有两个选项:AlwaysConditionalAlways是不管有没有Trigger,其他控件都将更新该UpdatePanelConditional表示只有当前UpdatePanelTrigger,或ChildrenAsTriggers属性为true时当前UpdatePanel中控件引发的异步回送或者整页回送,或是服务器端调用Update()方法才会引发更新该UpdatePanel

     

    与区域设置相关的会使用到UpdateMode属性,当设置其为Conditional,UpdatePanel自成一区域,不会被自动刷新。只有当区域内触发事件、异步回送或者是整页回送时才会刷新。UpdateMode的默认属性为Always,允许被自动刷新。

    异步回送例子:
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
      
    <ContentTemplate>
        
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>&nbsp;
      
    </ContentTemplate>
      
    <Triggers >
        
    <asp:AsyncPostBackTrigger ControlID="Button1" />
        
    <asp:AsyncPostBackTrigger ControlID="Button2"/>
      
    </Triggers>
    </asp:UpdatePanel>

    Timer控件:
    Timer控件是一个定时器控件。可以设定以特定时间规律触发。

    主要的属性:
    Enabled 是否启用。属性值: true 启用,false 停用。
    EnableViewState是否自动保存其状态以用于往返过程。
    Interval 用于定义触发间隔时间。单位是毫秒:1000毫秒=1秒

    主要事件:
    Tick 当到达间隔触发时间后,自动触发的事件。

    -----------------------------------------------------------------------------------------------------------------------

    使用技巧:

         Timer放在不同的区域,其应用的范围是不一样的。

         如果放在所有的UpdatePanel外,那么是整个页面的刷新。类似于F5。

         如果是将Timer放在UpdatePanel内,当ScriptManager控件没有设置EnablePartialRendering属性或者将其设置True时,那么仅在特定时间对所有的UpdatePanel区域刷新。当EnablePartialRendering设置为false时,对整个页面刷新。  

         最常用,将1个Timer放入任意一个愿意接受自动刷新的UpdatePanel中.

         如果Updatepanel不想被其他影响,可以设置UpdateMode属性为Conditional.

         如果涉及到Master页,且内容区域(contentplaceholder)被放在UpdatePanel内,那么内容区域都受其最外层环境影响。

    注意:

        在调试时,发现程序在更新时容易报回调时错误,可以做以下设置避免这此情况的发生。在页面<page>中设置ValidateRequest="false",在发布环境下,可以设置web.config中的<compilation debug="false">.
  • 相关阅读:
    博客园创业点子摘录
    DNN性能优化方案系列(2)Page State Persistence
    以页面模块(模块定义)为添加单位的DNN控制窗格(ControlPanel)
    在SQL Server中安全的创建,使用,和删除一个临时表
    IDataErrorInfo and Business rule validation
    转:通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行
    iis6启动HTTP压缩的方法
    TcpSocket编程与Event编写学习的好例子
    转:IIS aspnet HTTP 压缩 与Ajax
    070508_设置上次考试_考生管理_成绩批量录入
  • 原文地址:https://www.cnblogs.com/a311300/p/1240468.html
Copyright © 2011-2022 走看看