中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > Web Service
基于AJAX技术的DataGrid控件编程
作者:佚名 时间:2006-09-27 12:25 出处:51cto 责编:月夜寒箫
              摘要:基于AJAX技术的DataGrid控件编程
简介

在传统的Web开发中,每次DataGrid控件填充或更新都相应于一次到服务器的数据回馈。但是,借助于AJAX技术,我们可以在不进行表单提交(刷新)的情况下即可以填充DataGrid控件。

在本文中,我们通过一个简单示例并借助于一个DropDownList控件的帮助来讨论如何达到这一目的。在这个例子中,我们使用了一个DropDownList控件;一旦改变DropDownList的值,它即用相应的城市名来填充DataGrid控件,在此过程中我们巧妙了引入了AJAX技术。

既然我们已经了解一些AJAX的基本知识,现在让我们进一步讨论这个DataGrid示例程序。在本例中,我们主要解释如何从客户端发送请求,如何处理请求,以及如何运行客户端脚本来显示DataGrid中的数据。

示例应用程序结构

在本例中,我们共建立了两个Web表单(AjaxServer.aspx和DataGridEx.aspx),一个JavaScript文件和一个层叠式样表文件(css)。文件AjaxServer.aspx负责服务器端功能(一旦选择即返回作者结果),而文件DataGridEx.aspx负责使用AJAX技术显示返回的结果。下面让我们作进一步分析。

1. AjaxServer.aspx

这个页面以选择的“City”作为请求。它取回所有的属于该城市的作者并且把一个XML响应字符串返回到客户端(见列表1)。

列表1—AjaxSever.aspx.vb代码

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadIf Not IsPostBack Thenchoice = Request("Choice")If choice.Length > 0 ThenResponse.Clear()If choice = "All Cities" ThenDA = New SqlDataAdapter("select * from authors", con)ElseDA = New SqlDataAdapter("select * from authors where city ='" & Request("Choice") & "'", con)End IfDA.Fill(ds)chString = ds.GetXml()Response.Clear()Response.ContentType = "text/xml"Response.Write(chString)Response.End()ElseResponse.Clear()Response.End()End IfElseResponse.Clear()Response.End()End IfEnd Sub


2. DataGridEx.aspx

这个页面开始把所有的作者信息显示在DataGrid中。每当DropDownList中发生变化,它使用JavaScript文件取回内容并预以显示。注意:为了显示当前正运行的进程的状况,我们在此使用了一个面板。该面板具有一个GIF图像(开始不可见)—在处理发生于服务器端时它被显示,而一旦处理结束即变为不可见的(见图1)。我们这样做的根本目的就是为了让用户详细了解当前正运行的进程情况。



图1.DatagridEx.aspx的快照(为了显示进程)

3.JavaScript文件

这个文件负责整个进程的处理请求和响应。这个文件将生成XMLHttpRequest并且把选择的城市发送到AjaxServer.aspx页面。一旦返回,它得到一个类似于数据库表的输出结果—该结果将被填充到DataGrid中。

一开始,上图面板中的“进程”图像是不可见的。当DropDownList选择发生变化时,“进程”图像就显示出来,直到用返回的结果填充DataGrid为止(见列表2)。该DataGrid被返回的数据填充—通过使用一个简单的for循环来读取返回的内容(见列表3)。

列表2—进程状态

function FetchDGContents(){var selecteditem = document.Form1.ddlcity.value;imgtbl.style.visibility = 'visible';var requestUrl = AjaxServerPageName + "?Choice=" +encodeURIComponent(selecteditem);CreateXmlReq(); if(XmlReq){XmlReq.onreadystatechange = HandleResponse;XmlReq.open("GET", requestUrl, true);XmlReq.send();}}


列表3—使用收到的响应数据填充DataGrid控件

function FillTable(scity){var auth = scity.getElementsByTagName('Authors'); var tbl = document.getElementById('dgauthors').getElementsByTagName("tbody")[0];for(var i=0;i{var row = document.createElement("TR"); row.setAttribute("className","text");row.setAttribute("bgColor","#ECECEC");for(var j=0;j{var cell = document.createElement("TD"); cell.innerHTML = auth.context.childNodes(i).childNodes(j).text;row.appendChild(cell); }tbl.appendChild(row)}}


运行示例代码

你可以下载本文相应的示例源码进行分析。首先,创建一个命名为MyAjax的虚拟目录,然后把解压后的文件复制到该目录下即可。最后,打开Visual Studio.NET解决方案资源管理器并按F5键运行程序,并观察结果。

总结

本文通过一个简单的例子—使用AJAX技术操作DataGrid控件—来显示服务器调用的处理状态。这是把AJAX技术应用于.NET平台Web开发的又一简单示例。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有