asp.net利用ajax实现无刷新页面

首先看看Ajax的概念,即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。

简单的介绍之后,进入正题。

今天主要用Timer控件来完成这个功能。

所谓Timer控件,通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执行一次代码。(说明:Timer 控件用于背景进程中,它是不可见的。)

简单的Timer控件例子(到60分钟后提示吃饭时间到了)
timer1.Enabled = true;
timer1.Interval=3600000;//以毫秒为单位
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("吃饭时间到了");
}

Timer控件主要会用到2个属性一个是Enabled和Interval
Enabled主要是控制当前Timer控件是否可用
timer1.Enabled=false;不可用
timer1.Enabled=true;可用
timer1.Interval=3600000;主要是设置timer1_Tick事件的时间,单位为毫秒

补充:Timer控件通俗来说就是计时器,这是一个不可视控件.它的重要属性有Interval,Enabled.
它的Tick事件指的是每经过Interval属性指定的时间间隔时发生一次.
 
打开vs2008新建一个页面
 
1.到工具箱里,展开Ajax Extensions。添加ScriptManager控件到页面上。(ScriptManager控件用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAXASP.NET页面上有且只能有一个ScriptManager控件。 ScriptManager控件的EnablePartialRendering属性:true-实现页面的异步局部更新;false-实现全页面的刷新。
 
2.随后,添加UpdatePanel控件(简单介绍下UpdatePanel控件的个别属性,UpdateMode属性:Always-UpdatePanel页面上任何一处发生的回发操作都会产生页局部更新;Conditional-只在特定的情况下才产页面的回发,如执行UpdatePanel控件的update()方法或在指定的触发器的操作下。
 
3.在UpdatePanel控件内单击并双击Timer控件添加到UpdatePanel中。Timer控件可以作为UpdatePanel的触发器不管是否在UpdatePanel中。
 
设置Interval属性为1000。Interval属性的单位是毫秒,所以设置为1000,相当于1秒钟刷新一次。以此类推。
 
4.接着,只要把需要进行刷新的空间拖放到UpdatePanel里就行了。
 
 
5.为了更好的对比,我们再添加一个label2在UpdatePanel控件外

 
6.双击Timer1进行代码编写,简单的写个直观明了的测试程序。在事件处理中设置Label1的Text属性为当前时间。
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        Label1.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
    }

7.在Page_Load事件中添加代码设置Label2的Text属性为页面创建时间。

    protected void Page_Load(object sender, EventArgs e)
    {
        Label2.Text = "Page created at: " + DateTime.Now.ToLongTimeString();
    }

8.保存,测试,打开网页后,过3秒钟(这里我设置的Interval为3秒)可以看到Panel刷新,里面的Label文字改变为刷新的时间而外面的Label没有改变。形成了对比。参看效果图。

posted @ 2013-05-30 08:54  LovelyOu  阅读(1034)  评论(0编辑  收藏  举报