将Timer控件用作UpdatePanel的触发器

ASP.NET - 演练:对多个 UpdatePanel 控件使用 ASP.NET Timer 控件       在本演练中,将使用一个 Timer 控件来更新两个 UpdatePanel 控件的内容。将 Timer 控件放置在两个 UpdatePanel 控件之外,并将其配置为这两个面板的触发器。 1、创建新页并切换到“设计”视图。 2、如果页面尚未包含 ScriptManager 控件,请在工具箱的“AJAX Extensions”选项卡中双击 ScriptManager 阅读详情

本文英文原版及代码下载:

 http://mattberseth.com/blog/2007/08/using_the_ajax_timer_control_a.html

将Timer控件用作UpdatePanel的触发器

 ASP.NET AJAX Timer概述

ASP.NET AJAX Timer控件每隔特定的时间间隔执行一次页面回传,它有一个 Interval属性来定义时间间隔.当“到点”时就在服务器端触发Timer的Tick事件. 如果你希望整个页面回传(full postback)的话,你只需将Timer控件放在页面上,就像其它控件一样。但如果你希望Timer触发局部回传,你有2种选择: 1.将Timer控件放在UpdatePanel控件里 2.将Timer控件放在UpdatePanel控件外,再明白地将其注册为一个AsyncPostBackTrigger,另外,可以在Timer的Tick事件处理器里修改Timer属性(主要是Enabled 和 Elapsed),如果有必要的话你可以在运行的时候修改这些值.把Timer添加到页面后,我们还要考虑使用Timer的一些其它的事情.

AJAX Timer Considerations

1.把Timer控件放在UpdatePanel的里面或者外面时,其行为稍有不同。

Timer控件放在页面的什么地方将决定Elapsed值是如何计算的.如果    Timer放置在UpdatePanel外,当一个局部回传执行时它继续运行。所      以,假如Elapsed设置为5秒,而局部回传执行了3秒,那么当局部回传执行完毕2秒后就会触发timer控件;而当Timer控件放置在一个UpdatePanel内部时,当回传执行时Timer就停止运行,直到回传执行完毕后才运行.

2.将Elapsed属性的值设置的足够大,以便Tick事件处理器有足够的事件完成执行.

由于放置在UpdatePanel控件外的Timer控件在局部回传处于执行状态时仍在运行,如果Timer控件“到点”了而局部回传还没有执行完毕,那么当前的执行请求将会被取消而执行一个新的请求.这是你所不愿看到的.

3.当不再需要Timer时将其关闭

Timer控件将一直运行直到用户导航到其它页面或通过编程的方式将其Enabled属性设置为'false'.如果你有办法确定不再需要Timer控件了,将其关闭即可.如上图,当所有操作的状态为'Complete'时,我们用不着再使用Timer了.


Implementation(执行)

下面是UpdatePanel的声明代码,注意它包含了GridView和Timer控件:

<asp:UpdatePanel runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <%--Typical GridView--%>
        <asp:GridView
            ID="gvOperations" runat="server"
            GridLines="None" Width="100%"
            AllowSorting="true" DataSourceID="odsOperations"
            OnRowDataBound="GvOperations_RowDataBound">
            <AlternatingRowStyle BackColor="aliceBlue" />
            <HeaderStyle HorizontalAlign="Left" />
        </asp:GridView>
        <%--The Timer that causes the partial postback--%>
        <asp:Timer runat="server" Interval="1500" OnTick="Timer_Tick" />               
    </ContentTemplate>
</asp:UpdatePanel>

下面是Timer的OnTick事件处理器,它依照Waiting -> Running -> Complete的状态调用UpdateStatus.特别的我们还可以调用DataBind对GridView进行重新绑定以查看最新的情况.

private void Timer_Tick(object sender, EventArgs args)
{
    //  update the data (only here for demo purposes)
    if (DateTime.Now.Millisecond % 2 == 0)
    {
        UpdateStatus("Waiting", "Running");
    }

    if (DateTime.Now.Millisecond % 3 == 0)
    {
        UpdateStatus("Running", "Complete");
    }
   
    //  refresh the grid
    this.gvOperations.DataBind();
}

就是这样的,祝编程愉快!
 

ASP.NET - Timer 控件概述       ASP.NET AJAX Timer 控件按定义的时间间隔执行回发。如果将 Timer 控件用于 UpdatePanel 控件,则可以按定义的时间间隔启用部分页更新。也可以使用 Timer 控件来发送整个页面。当您要执行以下操作时,请使用 Timer 控件:·定期更新一个或多个 UpdatePanel 控件的内容,而无需刷新整个网页。·每当 Timer 控件导致回发时运 阅读详情

相关推荐

利用UpdatePanel+Timer 控件自动更新Gridview的数据

1、首先定义一个UpdatePanel控件,并在UpdatePanel控件的ContentTemplate里包含Timer控件和Gridview控件,将Timer控件设置为UpdatePanel控件触发器,在Timer控件设置具体的时间间隔触发更新。 …….. 2、在timerTest_Tick定时函数中重新对Gridvi

qq_25622147的博客 1727

ASP.NET AJAX入门系列:在多个UpdatePanle中使用Timer控件

 本文将使用Timer控件更新两个UpdatePanel控件Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel触发器,翻译自官方文档。 主要内容    在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图。2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extension

编程小天空 1054

Timer控件定时更新UpdatePanel - Demo

提供免费下载 Timer控件定时更新UpdatePanel - DemoVS2010版.zip

初学 ASP.NET AJAX (四):Timer 和 UpdateProgress

1 概述Timer 和 UpdateProgress 是 ASP.NET AJAX Extensions 1.0 中所包含的其他二个简单的服务器控件Timer 控件用于定时触发事件,而 UpdateProgress 控件用于在局部更新时为用户显示进度条。2 Timer 控件Timer 控件在预定的时间间隔中执行回发。如果将 Timer 控件UpdatePanel 控件一起使用,就

夏风鱼的专栏 956

TimerUpdatePanel实现局部刷新

1.Timer放在UpdatePanel里面和外面实现的刷新效果大不一样。 A.如果放在里面,将看不到刷新效果,很赞,而且正在进行的js代码不会因为刷新而毁灭掉,比如说,我在页面弹出另一个页面,刷新的时候,这个页面还是弹出的,不会重刷新。 B.如果放在外面,会明显看到页面的刷新效果和跳动,用户体验很不好,而且会将正在进行的js毁灭掉,比如我弹出的页面,会关闭掉。

wei_jie_zhang的专栏 3421

UpdatePanel控件(三)——Timer控件(1)

一、1秒等于多少毫秒? 1S=1000ms。   二、 Timer控件让刷新UpdatePanel(或整页)有了时间上的依据。它包含一个重要的属性: Interval — — 两次Tick事件之间的间隔(以毫秒计),默认值为60 000(一分钟)。Timer控件每隔若干毫秒(取决于Interval属性的值)就触发Tick事件。如果没有将Timer控件UpdatePanel关联,那么Ti

开心每天,水滴石穿。 488

AJAXUPDATEPANEL配合TIMER控件实现局部无刷新

首先加入UpdatePanel         <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> //注:UpdateMode为更新模式,设置此属性表示只刷新UpdatePanel中的部分,若不加此属性,默认为Always,刷新整个页面。...

weixin_30672295的博客 239

在多个UpdatePanle中使用Timer控件

本文将使用Timer控件更新两个UpdatePanel控件Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel触发器,翻译自官方文档。 主要内容    在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图。2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签

Lovingness  奶茶 657

使用ScriptManager+UpdatePanel+Timer控件实现在GridView中倒计时功能

之前在论坛中看到一位朋友要实现

luanjun123456的专栏 1740

Timer控件各种使用方法

timer控件的常用属性     1:Timer.Enabled 属性用于设置是否启用定时器     2:Timer.Interval 属性,事件的间隔,单位毫秒     3:Timer.Elapsed 事件,达到间隔时发生 (1 ) window中                  方法1:在visual studio工具箱中加入Timer控件,点击timer控件进入事件:

wssbwpp的专栏 1万+

ASP.NET - 演练:Timer 控件简介

      在本演练中,将使用三个 ASP.NET AJAX 服务器控件(ScriptManager 控件UpdatePanel 控件Timer 控件)按固定的时间间隔更新部分网页。通过将这些控件添加到网页上,可消除在每次回发时刷新整个页面的需要。将只需更新 UpdatePanel 控件的内容。1、在 Microsoft Visual Studio 2005 或 Visual Web

dodream的专栏 996

ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

本文将使用Timer控件更新两个UpdatePanel控件Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel触发器,翻译自官方文档。 主要内容 在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图。 2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签下...

adc26303的博客 138

UpdateProgress和Timer控件的使用

UpdateProgress控件:    在实际使用过程中,由于网络速度和服务器响应能力的影响,异步回发有的时候并不是想象的那么快,有时需要用户等待一段时间。在等待的过程中,用户可能不知道服务器处理完成了没有,让用户感觉有些迷茫。这时候如果我们在服务器处理数据的时候加入一个GIF动画,告诉用户稍等,等服务器处理完数据的时候GID动画消失,就会让用户感觉体贴很多。    我们可以使用UpdatePr

BraveHeart专栏 3496
上一篇: 考察ASP.NET 2.0的Membership, Roles,Profile - Part 8
下一篇: 7步实现GridView控件"ajax"化
heker2007
博客等级 码龄20年 228粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值