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

AJAX入门系列:Timer控件简单使用本文主要通过一个简单示例,让Web页面在一定的时间间隔内局部刷新,来学习一下 AJAX中的服务端Timer控件的简单使用。
主要内容Timer控件的简单使用1.添加新页面并切换到设计视图。
2.如果页面没有包含ScriptManager控件,在工具箱的AJAX Extensions标签下双击ScriptManager控件添加到页面中。
3.单击ScriptManager控件并双击UpdatePanel控件添加到页面中。
4.在UpdatePanel控件内单击并双击Timer控件添加到UpdatePanel中。
Timer控件可以作为UpdatePanel的触发器不管是否在UpdatePanel中。
5.设置Interval属性为10000。
Interval属性的单位是毫秒,所以我们设置为10000,相当于10秒钟刷新一次。
6.在UpdatePanel控件中添加一个Label控件。
7.设置Label控件的Text属性为“Panel not refreshed yet ”。
确保Label控件添加在了UpdatePanel控件里面。
8.在UpdatePanel之外再添加一个Label控件。
确保第二个Label控件在UpdatePanel的外面。
9.双击Timer控件添加Tick事件处理,在事件处理中设置Label1的Text属性为当前时间。
protected void Timer1_Tick(object sender, EventArgs e){Label1.Text = "Panel refreshed at: " +DateTime.Now.ToLongTimeString();}10.在Page_Load事件中添加代码设置Label2的Text属性为页面创建时间,如下代码所示:protected void Page_Load(object sender, EventArgs e){Label2.Text = "Page created at: " +DateTime.Now.ToLongTimeString();}11.切换到代码视图,确保代码如下所示:protected void Page_Load(object sender, EventArgs e){Label2.Text = "Page created at: " +DateTime.Now.ToLongTimeString();}protected void Timer1_Tick(object sender, EventArgs e){Label1.Text = "Panel refreshed at: " +DateTime.Now.ToLongTimeString();}12.保存并按Ctrl + F5运行13.等待10秒钟后可以看到Panel刷新,里面的Label文字改变为刷新的时间而外面的Label没有改变。
ASP.NET中TimeSpan的用法实例解析

中TimeSpan的⽤法实例解析本⽂实例讲述了中TimeSpan的⽤法,分享给⼤家供⼤家参考。
具体如下: 中,两个时间相减,得到⼀个 TimeSpan 实例,TimeSpan 有⼀些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有 TotalTicks。
⼀、TimeSpan常量、字段复制代码代码如下:TimeSpan.MaxValue; // 10675199.02:48:05.4775807TimeSpan.MinValue; //-10675199.02:48:05.4775808TimeSpan.Zero; // 0.00:00:00.0TimeSpan.TicksPerDay; //⼀天的 Tick 数: 864000000000TimeSpan.TicksPerHour; //⼀⼩时的 Tick 数: 36000000000TimeSpan.TicksPerMillisecond; //⼀毫秒的 Tick 数: 10000TimeSpan.TicksPerMinute; //⼀分钟的 Tick 数: 600000000TimeSpan.TicksPerSecond; //⼀秒钟的 Tick 数: 10000000⼆、TimeSpan静态⽅法复制代码代码如下:pare(); //对⽐TimeSpan.Equals(); //=TimeSpan.FromDays(); //从天数建⽴TimeSpan.FromHours(); //从⼩时数建⽴TimeSpan.FromMilliseconds(); //从毫秒数建⽴TimeSpan.FromMinutes(); //从分钟数建⽴TimeSpan.FromSeconds(); //从秒数建⽴TimeSpan.FromTicks(); //从 Tick 数建⽴TimeSpan.Parse(); //从字符串建⽴TimeSpan.ParseExact(); //从指定格式的字符串建⽴TimeSpan.TryParse(); //尝试从字符串建⽴TimeSpan.TryParseExact(); //尝试从指定格式的字符串建⽴三、TimeSpan属性复制代码代码如下:Days; //天部分 Hours; //⼩时部分Milliseconds; //毫秒部分Minutes; //分部分Seconds; //秒部分Ticks; //Tick 总数TotalDays; //总天数TotalHours; //总⼩时数TotalMilliseconds; //总毫秒数TotalMinutes; //总分钟数TotalSeconds; //总秒数四、TimeSpan⽅法复制代码代码如下:Add(); // + CompareTo(); //⽐对Duration(); //绝对值Equals(); //Negate(); //取反, + > -、- > +Subtract(); // -, Add()的反操纵ToString(); //格式化到字符串, .Net 4.0 较之前版本有变动五、TimeSpan构建对象复制代码代码如下:protected void Button1_Click(object sender, EventArgs e){TimeSpan t1 = new TimeSpan(864000000000); //1.00:00:00TimeSpan t2 = new TimeSpan(23, 59, 59); //23:59:59TimeSpan t3 = new TimeSpan(30, 23, 59, 59); //30.23:59:59TimeSpan t4 = new TimeSpan(30, 23, 59, 59, 999); //30.23:59:59.9990000double f = 365.25;TimeSpan t5 = TimeSpan.FromDays(f); //365.06:00:00TimeSpan t6 = TimeSpan.FromHours(f * 24); //365.06:00:00TimeSpan t7 = TimeSpan.FromMinutes(f * 24 * 60); //365.06:00:00TimeSpan t8 = TimeSpan.FromSeconds(f * 24 * 60 * 60); //365.06:00:00TimeSpan t9 = TimeSpan.FromMilliseconds(f * 24 * 60 * 60 * 1000); //365.06:00:00TimeSpan t0 = TimeSpan.FromTicks((long)(f * 24 * 60 * 60 * 1000 * 10000)); //365.06:00:00TextBox1.Text = string.Format("{0}\\n{1}\\n{2}\\n{3}\\n{4}\\n{5}\\n{6}\\n{7}\\n{8}\\n{9}",t1, t2, t3, t4, t5, t6, t7, t8, t9, t0);}六、TimeSpan实例时间 1 是 2010-1-2 8:43:35;时间 2 是 2010-1-12 8:43:34。
ASPNET AJAX入门系列:使用客户端脚本对UpdateProgress编程

AJAX入门系列:使用客户端脚本对UpdateProgress编程在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用 AJAX Library中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消异步更新,并且使用客户端脚本来显示或者隐藏进度信息。
主要内容1.通过客户端脚本取消异步更新2.通过客户端脚本显示或者隐藏进度信息一.通过客户端脚本取消异步更新1.创建一个Web页面并切换到设计视图。
2.在工具箱中双击ScriptManager、UpdatePanel、UpdateProgress控件添加到页面中。
添加后页面如下:3.在UpdatePanel控件中添加一个Label控件并设置它的Text属性值为“Panel Rendered”。
4.添加一个Button控件并设置它的Text属性值为“refresh”。
5.在UpdateProgress控件中添加文本text Processing…,并添加一个HtmlButton控件并设置它的Text属性为cancle。
6.双击refresh控件添加Click事件。
7.在Buttond的Click事件处理中添加如下代码,人为的创建一个3秒钟的延迟并显示当前服务器的时间。
protected void Button1_Click(object sender, EventArgs e){System.Threading.Thread.Sleep(3000);Label1.Text = DateTime.Now.ToString();}8.添加如下脚本,获取一个当前PageRequestManager类的实例,并创建一个函数调用abortPostBack方法来停止异步更新。
<script language="javascript"type="text/javascript"><!--var prm = Sys.WebForms.PageRequestManager.getInstance();function CancelAsyncPostBack() {if(prm.get_isInAsyncPostBack()) {prm.abortPostBack();}}// --></script>9.设置HtmlButton的click特性为CancelAsyncPostBack。
ASP. NET Ajax服务器端控件

ContentTemplate
UpdateMode
内容模板,在该模板内放置控件、HTML代码等
UpdateMode属性共有两种模式:Always与Conditional,Always 是每次Postback后,UpdatePanel会连带被更新;相反, Conditional只针对特定情况才被更新 若RenderMode的属性值为Block,则以<DIV>标签来定义程序段 ;若为Inline,则以<Span>标签来定义程序段
<Services> <asp:ServiceReference Path="WebService.asmx" /> </Services> </asp:ScriptManager> 属 性 InlineScript Path 说 明 是否把引入的Web服务资源嵌入到页面的HTML代码中,默认为false。若将其设置 为true,则表示直接嵌入 引入Web服务资源的路径,一般为相对路径
ScriptManager控件(3)
2.使用<Services>标记引入Web Service
在ScriptManager控件中使用<Services>标记可以以声明的方式引入Web服务资源。例如, 引入Web Service文件(文件后缀为.asmx)的代码如下:
<asp:ScriptManager ID="ScriptManager1" runat="server">
下面分别介绍如何在ScriptManager控件中使用其<Scripts>标记和<Services>标记。
ScriptManager控件(2)
ASP.NET AJAX入门系列:使用UpdatePanel控件

AJAX入门系列:使用UpdatePanel控件<<!----></ContenteTemplateContainer <Background:<br /><asp:DropDownList ID="ColorList" AutoPostBack="True" OnSelectedIndexC hanged="DropDownSelection_Change"runat="server"><asp:ListItem Selected="True" Value="White">White </asp:ListItem><asp:ListItem Value="Silver">Silver </asp:ListItem><asp:ListItem Value="DarkGray">Dark Gray </asp:ListItem><asp:ListItem Value="Khaki">Khaki </asp:ListItem><asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem></asp:DropDownList></div></ContentTemplate></asp:UpdatePanel>事件代码:<script runat="server">void DropDownSelection_Change(Object sender, EventArgs e){Calendar1.DayStyle.BackColor =System.Drawing.Color.FromName(ColorList.SelectedItem.Value);}</script>四.ContentTemplateContainer属性如果要使用编程的手法去设置UpdatePanel中的内容,需要创建一个UpdatePanel,并且添加控件到ContentTemplateContainer,而不能直接添加控件到ContentTemplate,如果想直接设置ContentTemplate,则需要编写一个自定义的Template,并去实现位于System.Web.UI命名空间下的接口ITemplate。
ASP NET中使用AJAX的教程

使用AJAX的教程(一)本文所描述的使用AJAX的方法非常简单,而且效率很高。
同时这种方法还非常容易维护,并且开发人员无需任何的特殊技巧就可以实现它,而且使用这种方法还可以跨浏览器。
一个基本的AJAX实现需要两个主要部分:一个使用JavaScrip t代码编写的客户端HTML页,这些JavaScript用来向服务端发送请求和接收响应;一个可以接收请求和向客户端发送响应信息的远程页面。
客户端的JavaScript代码的任务是建立一个XmlHttp对象,然后向服务端发送请求信息,最后通过回调方式处理服务端返回的响应信息。
这一切都是由JavaScript代码实现的。
本文的例子使用程序实现,在实现上要做到以下几点:1、AJAX可以在不同的页上向不同的服务端页发送请求。
2、远程页面URL可以包含动态可计算的参数,这样做可以在A 的后端代码中更方便地建立URL字符串。
3、远程页在更新HTML页之前可以使用复杂的数据进行响应,这也可以由的后端代码完成。
4、一个服务端页面可以是一个扩展的第三方的页面,也可以是本身的web页或服务。
以上的几点如图1所示图1二实现基本的AJAX JavaScript方法我将JavaScript方法分成两部分:调用特殊页的JavaScript方法和一般的JavaScript方法。
特殊的方法包括一个回调方法,它的作用是更新页面内容。
而其它的AJAX方法负责建立一个XmlHttp对象,并向服务端发出一个异步的HTTP请求。
建立的XmlHttp对象因客户端浏览器的不同而有所差异。
本文只考虑两种浏览器:一个是Microsoft的IE系列浏览器;另一个是Moz illa系列浏览器,包括Mozilla Firefox、Netscape和Safari。
我也在Opera浏览器上测试过,但我不能保证本文的代码可以很好地运行Opera浏览器上。
下面是如何建立XmlHttp对象的代码:funct ion Get XmlHt t pObject(handler){var objXmlHt t p = null;if (!window.XMLHtt pRequest){// Mic rosoftobjXmlHt t p = Get MSXmlHt t p();if (objXmlHt t p != null){objXmlHt t p.onreadyst at echang e = handler;}}else{// Mozilla | Net scape | SafariobjXmlHt t p = new XMLHtt pRequest();if (objXmlHt t p != null){objXmlHt t p.onload = handler;objXmlHt t p.onerror = handler;}}ret urn objXmlHt t p;}funct ion Get MSXmlHt t p(){var xmlHt t p = null;var c lsids = ["Msxml2.XMLHT T P.6.0","Msxml2.XML HT TP.5.0","Msxml2. XMLHT TP.4.0","Msxml2.XMLHT T P.3.0","Msxml2.XML HT T P.2.6","Mic rosoft.XMLHTT P.1.0","Mic rosoft.XMLHTT P.1","Mic rosoft.XMLHTT P"];for(var i=0; i<c lsids.lengt h && xmlHt t p == nu ll; i++) { xmlHt t p = Creat eXmlHt t p(c lsids[i]);}ret urn xmlHt t p;}funct ion Creat eXmlHt t p(c lsid) {var xmlHt t p = null;t ry {xmlHt t p = new Act iveXObject(c lsid);lastc lsid = c lsid;ret urn xmlHt t p;}c atc h(e) {}}由于MSXML5只是为Office设计的,因此,我们可以不考虑M SXML5。
aspnet各种timeout设定

∙Session TimeOut在Web.config中sessionState的Tag中有個TimeOut的屬性,預設是20分,跟IIS的Session 設定是相同的,如果改的話,IIS也要一起改哦!∙Script Timeout可設定Server.ScriptTimeout(預設為60秒),可加大它! 如Server.ScriptTimeOut = 3600∙ScriptManager’s AsyncPostBackTimeout使用ScriptManager也會有Timeout哦! 就是AsyncPostBackTimeout,預設應該是90秒吧! 所以如果放在UpdatePanel中時,Run超過90秒時,就會出現「Sys.WebForms.PageRequest ManagerTimeoutException: The server request timed out.」。
這時就要把AsyncPostBackT imeout加大,如AsyncPostBackTimeout="3600"。
∙Database的TimeoutDB的Timeout有Connection的Timeout(預設是15秒,得在終止嘗試並產生錯誤前嘗試建立連接的等待時間),一般是不用改到這個。
另外就是Command的Timeout,常需要改的就是這個,如果要Run比較久的話,就要把這個設大一點哦!∙MSDTC的Timeout如果有使用到MSDTC的話,也要注意一下MSDTC的Timeout哦!Upload File Timeout有看到別人要Upload file時,要設定httpRuntime中的executionTimeout,及Application P ool的Idle timeout。
可參考Prevent Request Timeout in 。
asp.net中AJAX技术基础及应用

19
更灵活的更新方式
当把UpdatePanel的ChildrenAsTriggers属性设置为false时,它 内部所有的控件引发的异步回送都不会更新自已.如果同时它的 UpdateMode=Conditional,那么,必须指定外部某个 控件来触发它的异步更新,否则,它无法实现异步更新自己. 这个"外部"的控件被称为"触发器(Trigger)". 触发器( 触发器 Trigger) 所谓"触发器",其实就是可引发异步更新的控件.
1. 2. 3.
4.
5.
36
示例的要点
使用验证控件验证数据有效性.注意要让其 EnableClientScript="False". 注意复习GridView分页的方法. 编程显示弹出窗口: ModalPopupExtender1.Show(); 要让弹出窗口支持拖动,需给<strong>元素加上id 和runat="server"标记,配上样式表,然后指定 ModalPopup控件的PopupDragHandlerControlID 属性.
程序设计 之 程序设计
AJAX技术初阶 AJAX技术初阶
主要内容
AJAX概述 页面的局部刷新与异步回发 使用UpdateProgress控件 定时调用 AJAX Control ToolKit ToolKit简介及应用
2
1 AJAX概述
Web应用程序的"软肋"
问:让网页象EXCEL一样好用,可能吗? 答:Web应用与桌面应用有着完全不同的运行环境和编程 模型,在目前的技术条件下,Web应用要完全超越已发展 多年的桌面应用所拥有的丰富交互特性,还是很困难的. 问:为何访问网页很慢,并且在显示时会有闪烁? 答:当前网络带宽还不够,并且传统的Web网页是 采用"请求"-"刷新"这一机制来显示的,并且哪 怕数据只有一点改变,也得刷新整个页面…… 正是为了弥补传统Web技术的弱点,AJAX技术才得 到广泛应用.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AJAX入门系列:在多个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属性为10000。
Interval属性的单位是毫秒,所以我们设置为10000,相当于10秒钟刷新一次。
11.双击Timer控件添加Tick事件处理,在事件处理中设置Label1和Label2的Text属性值,代码如下。
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.在UpdatePanel1和UpdatePanel2中添加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" "/TR/xhtml11/DTD /xhtml11.dtd">
<html xmlns="/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 refr eshed 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 refr eshed yet."></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
13.保存并按Ctrl + F5运行。
14.等待10秒钟后两个UpdatePanel都刷新后,Label中的文本都变成了当前时间。
作者:TerryLee
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。