首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>AJAX实现无刷新适时显示gridView中数据代码
AJAX实现无刷新适时显示gridView中数据代码
来源: 发布时间:2008-02-14 发布人: 浏览: 人次   字体: [ ]  

经常有朋友问到怎么无刷新页面,适时显示数据库中的变化,或是说数据库中更新后,所有打开此页面的用户都可以看到结果,而不用主动去刷新页面(当然页面还是自己在刷新,不然怎么能从服务器端取回数据呢。)

自从 微软推出 了自己的 AJAX组件 后,在AJAX 组件 和 asp.net2.0 下问题的解决就变得很简单了,下面我说说怎么使用MS AJAX组件实现无需要用户刷就能让数据的适时显示。本文后附代码和源程序。觉得不好的朋友,请不要骂我:)

步骤:一、下载和安装 MS AJAX 组件 (已经安装的朋友可跳过此步,但要注意版本。)下载地址以及相关的AJAX的使用和其他请访问微软的AJAX网站:http://ajax.asp.net/

          二、建立一个AJAX 站点。 经过第一步后,在新建站点的对话框中就可以看到一个支持AJAX的站点模板,从模板进行创建就行了。

         三、 在页面上放一个 UpdatePanel  组件, 用此组件包住要更新的数据显示控件。在这里我们为了能看到效果 加了一个 label 显示服务器时间。

         四、把 ScriptManager 的属性设为: EnablePartialRendering=true  注意有些怎么本的AJAX中可能默认就是true 但有些老的版本中 默认为false,  这个属性就是设置是局部刷新还是全部刷新。

         五、 到这里,页面上的数据显示已经可以无刷新了,但是要适时我们还要再使用 Timer控件 (别到处乱找了,也是在装了AJAX后才会在工具箱中出现的,和上面的控件在一起。)

         把timer的触发时间设为 1000  .也就是1秒,当然你也可以高大点或是小点都行。

        为了能在label中适时的显示服务器时间 ,可以在 Timer1_Tick方法中使用以下代码。

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        this.Label1.Text = DateTime.Now.ToString();
    }

这样这个例子就完成了,运行看看吧。时间是否在变,在其他页面添加一条数据看看,是不是这个页面不主动去刷新也可以看到了。

附件中的程序:运行环境: VS2005  + MS  AJAX 1.0

效果如下:

一点废话:

这本来是自己当初做的一个小例子,由于CSDN上的朋友经常有人来邮 索要代码,而部份人要到的代码由于环境的原因 无法正常使用。起初的一些邮件我都给预了回复,但后来由于时间长了,有些邮件没有及时回复,为了一次性解决这个问题,我做例子重做了一个简单的,加上截图和说明,以方面大家使用。

本例使用MS AJAX 组件实现无刷新适时显示数据库中的数据变化。 为了让大家能看清楚,所以选了一个简单的例子。
        
        显示 时只有一个 GridView 和一个 Label 分别用来显示数据 和 时间。显示时间是为了让大家看到页面在局部更新。

        如果这时你改了数据库中的数据,你会发现页面上的数据也马上更新了。

        本例使用了 微软的 AJAX 组件。如果大家想看到运行的效果 ,可以下载本文所带的附件 ,但你要先安装 该组件。

        该组件的下载及 其相关 可访问 微软的asp.net官方网站 的 http://AJAX.asp.net 下载。
           
        为了方便大家,本文附件包中附带该组件。使用前请先查毒,不放心请勿请用。

 附代码:

//页面

<%@ 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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering=true runat="server" />
        <div>
            &nbsp;<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID"
                        DataSourceID="SqlDataSource1">
                        <Columns>
                            <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" InsertVisible="False"
                                ReadOnly="True" SortExpression="CategoryID" />
                            <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
                            <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
                        </Columns>
                    </asp:GridView>
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
        </asp:Timer>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                        SelectCommand="SELECT [CategoryID], [CategoryName], [Description], [Picture] FROM [Categories]">
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
        &nbsp;
    </form>
</body>
</html>

// CS

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        this.Label1.Text = DateTime.Now.ToString();
    }
}


相 关 文 章   发布商链接
·gridview绑定数据显示的各种格式
·ASP.NET多个用户控件回车提交表单问...
·Gridview中生成的属性rules="all",...
·ASP.NET 2.0中层次数据的处理及其Tre...
·实现gridview内容打印功能的二法
·gridview表头固定并实现打印到excel...
·重写GridView实现单击行变色的效果代...
·图解ASP.NET下AJAX安装(VS2005下安...
·Gridview控件字段内容过长的解决方法...
·实例解决GridView中弹出对话框并改变...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
·重写GridView实现单击行变色...
·gridview表头固定并实现打印...
·实现gridview内容打印功能的...
·ASP.NET 2.0中层次数据的处理
·Gridview中生成的属性rules="...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·ASP.NET中“无法加载 DLL 找...
·gridview表头固定并实现打印...
·asp.net2.0回发或回调参数无...
·gridview绑定数据显示的各种...
·gridview空数据源时仍显示表...
·asp.net文件下载防止乱码出现...
·实现gridview内容打印功能的...
·Js获取radiobuttonlist选中值...
·如何在ASP.NET 2.0中创建母版...
·ASP.NET2.0连接ORACLE实例代...
·Net2.0中使用母版页及其母版...
·ASP.NET多个用户控件回车提交...
·实例解决GridView中弹出对话...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .