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

本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档。

 

主要内容

    在多个UpdatePanel中使用Timer控件

 

1.添加一个新页面并切换到设计视图。

2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签下双击ScriptManager控件添加到页面中。

3.双击Timer控件添加到Web页面中。Timer控件可以作为UpdatePanel的触发器不管它是否在UpdatePanel中。

4.双击UpdatePanel控件添加一个Panel到页面中,并设置它的UpdateMode属性值为Conditional

5.再次双击UpdatePanel控件添加第二个Panel到页面中,并设置它的UpdateMode属性值为Conditional

6.在UpdatePanel1中单击,并在工具箱中Standard标签下双击Label控件添加到UpdatePanel1中。

7.设置Label控件的Text属性值为“UpdatePanel1 not refreshed yet”。

8.添加Label控件到UpdatePanel2

9.设置第二个Label控件的Text属性值为“UpdatePanel2 not refreshed yet”。


10
.设置Interval属性为10000Interval属性的单位是毫秒,所以我们设置为10000,相当于10秒钟刷新一次。

11.双击Timer控件添加Tick事件处理,在事件处理中设置Label1Label2Text属性值,代码如下。

public partial class _Default : System.Web.UI.Page

{

    
protected void Page_Load(object sender, EventArgs e)

    
{

    }


    
protected void Timer1_Tick(object sender, EventArgs e)

    
{

        Label1.Text 
= "UpdatePanel1 refreshed at: " +

          DateTime.Now.ToLongTimeString();

        Label2.Text 
= "UpdatePanel2 refreshed at: " +

          DateTime.Now.ToLongTimeString();

    }


}

12.在UpdatePanel1UpdatePanel2中添加Timer控件作为AsyncPostBackTrigger,代码如下:

<Triggers>

  
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />

</Triggers>

全部完成后ASPX页面代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    
<title>Untitled Page</title>

</head>

<body>

    
<form id="form1" runat="server">

        
<asp:ScriptManager ID="ScriptManager1" runat="server" />

        
<div>

            
<asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000">

            
</asp:Timer>

        
</div>

        
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">

            
<Triggers>

                
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />

            
</Triggers>

            
<ContentTemplate>

                
<asp:Label ID="Label1" runat="server" Text="UpdatePanel1 not refreshed yet."></asp:Label>

            
</ContentTemplate>

        
</asp:UpdatePanel>

        
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">

            
<Triggers>

                
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />

            
</Triggers>

            
<ContentTemplate>

                
<asp:Label ID="Label2" runat="server" Text="UpdatePanel2 not refreshed yet."></asp:Label>

            
</ContentTemplate>

        
</asp:UpdatePanel>

 

    
</form>

</body>

</html>


13.保存并按Ctrl + F5运行。

14.等待10秒钟后两个UpdatePanel都刷新后,Label中的文本都变成了当前时间。

 

[翻译自官方文档]
作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-11-15 21:43 TerryLee 阅读(8819) 评论(49)  编辑 收藏 所属分类: ASP.NETAJAX

  回复  引用    
#1楼 2006-11-16 21:27 | hm [未注册用户]
看了着么多李大哥写的文章,终于坐到沙发了,呵呵
  回复  引用  查看    
#2楼 2006-11-17 05:39 | baiwei1977      
有一个关于CascadingDropDown问题。请教一下。
现在我们处理的三级联动,都是一组数据。如果有多组三级联动的数据。

在WEB服务中一般是这样的。

public CascadingDropDownNameValue[] Get1(string knownCategoryValues, string category)

public CascadingDropDownNameValue[] Get2(string knownCategoryValues, string category)

public CascadingDropDownNameValue[] Get3(string knownCategoryValues, string category)

我怎样将一个page.asp?id=1。的参数传到Get1中呢?

现在使用的是asp.net ajax beta2。谢谢。小飞

  回复  引用  查看    
#3楼 [楼主]2006-11-18 18:05 | TerryLee      
@hm
:)
  回复  引用  查看    
#4楼 [楼主]2006-11-18 18:06 | TerryLee      
@baiwei1977
现在的ASP.NET AJAX ControlToolkit还不能实现吧,我也不太清楚
  回复  引用    
#5楼 2006-11-19 12:22 | efly [未注册用户]
老赵~~
小弟 有个问题 不知道如何解决~
就是在模版页面 和 子页面 间 使用uodatepanle 的时候,不知道如何使用~
也就是子页面的dropdownlist 选择项事件触发的时候~我想让 masterpage中的 一块 局部 更新。我自己怎么式也不行,在 masterpage 中 拖入一个 updatepanel 吧 里面的 triigers 条件是找不到 子页面的 控件ID的·

我不知道这能不能实现,问下老赵 可有解决方法么?
  回复  引用    
#6楼 2006-11-20 21:17 | xpengfee[匿名] [未注册用户]
初学者,受益匪浅,谢谢了!!!
  回复  引用  查看    
#7楼 2006-11-22 10:07 | WXWinter(冬)      
收刮,收刮,收刮,收刮,收刮,收刮,收刮,收刮

收刮了好多,好文章,本想偷偷跑掉,最后还是决定打个招呼(^_^)

佩服你的技术,更佩服你的文风
  回复  引用  查看    
#8楼 [楼主]2006-11-23 20:59 | TerryLee      
@WXWinter(冬)
呵呵,过奖:)
  回复  引用  查看    
#9楼 2006-12-20 16:55 | Anthan      
Terry 大哥还会继续吗?
  回复  引用  查看    
#10楼 [楼主]2006-12-23 16:35 | TerryLee      
@Anthan
看时间吧,呵呵:)
  回复  引用    
#11楼 2006-12-25 15:19 | wuyun [未注册用户]
希望Lee大哥,介绍一下这些Ajax控件的原理和机制。
  回复  引用  查看    
#12楼 [楼主]2006-12-25 21:20 | TerryLee      
@wuyun
现在没时间啊
  回复  引用  查看    
#13楼 2006-12-31 10:03 | 舞步者      
收益非浅!
  回复  引用  查看    
#14楼 2007-01-17 21:30 | 孤叶(学习.net框架)      
发了一天的时间,把你的blogs的关于asp.net ajax的东东都看完拉.
VERY GOOD!!!
QQ群:18788422大家一起讨论asp.net ajax吧
  回复  引用  查看    
#15楼 [楼主]2007-01-17 23:12 | TerryLee      
@孤叶(学习.net框架)
:)

// 不用QQ已经多年了:)
  回复  引用    
#16楼 2007-01-22 17:18 | Henry [未注册用户]
两个月没新的了:(
  回复  引用  查看    
#17楼 [楼主]2007-01-23 22:52 | TerryLee      
@Henry
太忙了

要学习的东西也太多了:)
  回复  引用    
#18楼 2007-03-08 13:48 | MiKey [未注册用户]
好东西呀!!!

  回复  引用    
#19楼 2007-03-12 11:09 | yuki [未注册用户]
希望能继续更新
  回复  引用  查看    
#20楼 2007-06-01 09:38 | yinix      
这些好文章我已经收藏啦,谢谢哦。以后还会经常来的。
  回复  引用    
#21楼 2007-06-18 11:16 | Lee Vane [未注册用户]
这个到是很简单啊,我一看就懂了
  回复  引用  查看    
#22楼 2007-08-16 16:52 | 菜鸟吴迪      
哎,郁闷啊,我要是一年前就跟着李老大混,早发现这个,估计技术肯定比现在NB很多啊,现在真是菜啊!:(
  回复  引用    
#24楼 2007-08-28 17:12 | zhoucloud [未注册用户]
已经完结了吗?还有点意犹未尽啊
谢谢TerryLee
  回复  引用    
#25楼 2007-08-31 12:03 | Richard sun [未注册用户]
看了Lee很多文章了。。从来没有回复过。。
太不厚道了。。
From now on , i will reply every time!
thank all.
  回复  引用    
#26楼 2007-12-13 10:24 | whisdn [未注册用户]
请问:
当Web服务器停止了,此时IE会弹出出错框,如何屏蔽此出错框呢???
  回复  引用  查看    
#27楼 [楼主]2007-12-13 12:42 | TerryLee      
@whisdn
可以通过ScriptManager中的错误处理,进行自定义的
  回复  引用    
#28楼 2008-01-17 21:23 | 玉鱼 [未注册用户]
双击UpdatePanel控件添加一个Panel到页面中,并设置它的UpdateMode属性值为Conditional,我的两个panel的updateMode的属性值都设置为Always,也可以啊,这个属性里的两个属性值有什么区别吗,可以讲讲吗,我从页面上看不出区别,还望知道的讲讲,谢谢!
  回复  引用    
#29楼 2008-01-22 17:27 | blackbird [未注册用户]
有一个问题就是,我用updatepanel和timer计时,时间到后,在后台执行一段代码,最后整个页面跳转到另外一个页面,这个应该怎么实现阿。其他都可以了就是跳转到另外一个页面不可以。

  回复  引用    
#30楼 2008-04-09 13:25 | 黄彩荣 [未注册用户]
Lee老师,我看完了您的ajax真的很好.很适合我们初学者..谢谢
  回复  引用    
#31楼 2008-05-12 10:15 | letianyuweng [未注册用户]
非常好的入门教程,感谢作者的奉献
  回复  引用    
#32楼 2008-06-01 11:02 | 李军辉 [未注册用户]
最近没事研究了一下ajax。
无意中找到了你的网站,我们名字很像,呵呵。
看了一下都两年多了的文章了,不是因为看到你的文章老,是说我觉得自己太落后了,ajax都过了这么多年了,我现在才学习。
  回复  引用  查看    
#33楼 2008-06-11 19:00 | zagelover      
支持,终于把文章看完了,就是没有继续更新,挺可惜的...
  回复  引用    
#34楼 2008-07-25 11:53 | recoba [未注册用户]
一个字 挺好!
  回复  引用  查看    
#35楼 [楼主]2008-07-27 21:26 | TerryLee      
@recoba
好像是两个字:)
  回复  引用  查看    
#36楼 2008-08-29 13:42 | 长空      
看完了,谢谢:)
  回复  引用    
#37楼 2008-10-04 22:28 | bywind [未注册用户]
做了一遍练习,作为我踏入ajax的入门功能。
thanks
  回复  引用  查看    
#38楼 [楼主]2008-10-08 11:35 | TerryLee      
@bywind
:)

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-16 19:16 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: