基于AJAX技术的DataGrid控件编程

ajax|datagrid|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.Load

If Not IsPostBack Then

choice = Request("Choice")

If choice.Length > 0 Then

Response.Clear()

If choice = "All Cities" Then

DA = New SqlDataAdapter("select * from authors", con)

Else

DA = New SqlDataAdapter("select * from authors where city ='" & Request("Choice") & "'", con)

End If

DA.Fill(ds)

chString = ds.GetXml()

Response.Clear()

Response.ContentType = "text/xml"

Response.Write(chString)

Response.End()

Else

Response.Clear()

Response.End()

End If

Else

Response.Clear()

Response.End()

End If

End 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开发的又一简单示例。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 控件
, 进程
, datagrid
, ifda 发布
, 一个
示例
easyui datagrid ajax、datagrid ajax、datagrid ajax实例、datagrid控件、vb datagrid控件,以便于您获取更多的相关知识。

时间: 2024-10-02 11:34:54

基于AJAX技术的DataGrid控件编程的相关文章

基于AJAX.NET技术的DataGrid控件开发

ajax|datagrid|datagrid控件|控件开发 摘要 本文中的这个DataGrid是一个客户端控件,它是使用JavaScript和Ajax.net技术构建的. 一. 简介 本文中要创建的这个DataGrid是一个客户端控件.它是使用JavaScript并且使用Ajax.net技术构建的以实现与ASP.NET后端代码的通讯:而在这个后端,我们使用ADO.NET存取数据库并使用Dataset更新数据库. 这个控件具有一个DataGrid应该具有的一切特征,并且具有在你建立连接串和表名后不

窗体编程 c# datagrid-窗体编程中的DataGrid控件的使用

问题描述 窗体编程中的DataGrid控件的使用 我想用c#实现一个功能,就是点击DataGrid控件中的某一行,这行记录中的内容就显示到相应的textBox中,比如一行记录中包括姓名,年龄,性别三列,点击后姓名显示在textBox1中,年龄显示在textBox2中,性别显示在textBox3中. 应该怎么实现?我做的是窗体的程序.求具体代码~谢谢各位了.

基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度

在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是使用的人员计算机的屏幕分辨率可能不一样,因此导致有些地方显示太大或者太小,总是不能达到好的预期效果,如果DataGrid能够根据窗口尺寸进行伸缩,效果应该好很多.本文主要介绍DataGrid控件实现自动适应宽带高度的操作. 首先我们需要定义一个resizeDataGrid的扩展函数,方便在页面里面进行调用,扩展函数定义如下所示. //datagrid宽度高度自动调整的函数 $.fn.exten

jQuery:收集一些基于jQuery框架开发的控件/jquery插件2

Horizontal accordion: jQuery基于jQuery开发,非常简单的水平方向折叠控件.主页:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html (无法找到)下载:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html 示例:http://let

ASP.NET:DataGrid控件的分页功能

asp.net|datagrid|datagrid控件|分页 DataGrid 控件是一个基于模板样式的.多功能的.多列的数据绑定控件.在三个数据绑定控件中,DataGrid是功能最为强大的,其次时DataList控件,然后是轻量级的数据绑定控件Repeater.要自定义 DataGrid 中各列的布局,您可以将列类型设置为"模板",然后修改列的模板.DataGrid 控件也可以无需模板,只需按照默认的设置即可进行呈现,这使得该控件成了用于报告方案的理想控件.      我们可以把Da

ASP.NET:DataGrid控件的编辑功能

asp.net|datagrid|datagrid控件 在ASP技术作Web编程的时候,因为对数据库的操作使用的RecordSet对象,如果不使用第三方控件,想要做到在线编辑数据就很困难.而DataGrid控件就支持了在线编辑的功能,只要把EditCommandColumn属性设置适当,稍加编程就可以实现了. DataGrid控件的EditItemIndex属性表示编辑按钮的类别,ASP.NET默认的EditItemIndex=-1,即不支持编辑属性.下面我们通过实例来学习一下.     在Da

5款Ajax 文件上传控件_AJAX相关

1. FancyUpload (演示地址) FancyUpload是一个采用Flash与Ajax(MooTools)技术实现包含上传进度条的多文件上传组件,类似于SWFUpload. 2. SwfUploadPanel (演示地址) SwfUploadPanel是一个结合SwfUpload v2.0.2与ExtJS 2.0.x开发的多文件上传面板(panel). 3. Yahoo! UI Library: Uploader (演示地址) YUI Uploader Control结合Flash开发

服务器端动态加载DataGrid控件并设置其属性

datagrid|datagrid控件|动态|服务器|加载|datagrid|datagrid控件|服务器|加载 DataGrid在Asp.net编程中占有非常重要的地位,对于浏览器中大批量数据的呈现,DataGrid几乎不可缺少.常用的设置DataGrid属性的方法都是在前台由Asp语句实现,这样显然不适合DataGrid的动态加载,通过后台C#代码实现前台的功能显得非常重要,下面就通过一个实例来说明其设置方法.同其它动态加载服务器控件的方法一样,要在客户端浏览器上呈现DataGrid,必须要

ASP.NET:优化DataGrid控件的编辑功能

asp.net|datagrid|datagrid控件|优化 尽管在上面的实例中我们已经实现了DataGrid的在线编辑功能,但是,如果我们已经习惯了C/S 结构的程序,就会感觉到上个实例中编辑的不足:提交数据频繁,加重了服务器的负担.在这一节中,我们利用一个实例来演示优化后的DataGrid控件的编辑功能,其中的技术就是引入批量更新数据.引入的一个新知识就是控件的FindControl方法.     我们来看具体实例.首先在DataCon Web项目里,添加一个Web Form,命名为Data