日期:2011-09-24  浏览次数:20477 次

  Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的DataGrid组件都要"高级"许多。其"高级"的地方就在于不需要再进行任何其他设置或编程,DataGrid就能够对其中的数据分别按照升、降序进行排列。这种"高级"功能给我们编程提供了许多方便。图01是在WinForm程序中的DataGrid组件按照"EmployeeID"升序进行排列时的界面:


图01:在WinForm程序中使用DataGrid对数据进行排序

  此时很多的朋友肯定会问这样的问题,Visual Studio .Net不仅为编写WinForm程序提供了DataGrid组件,同样也为编写WebForm程序(即:ASP.NET页面程序)提供了DataGrid组件,那么在WebForm中的DataGrid是否也像在WinForm中的DataGrid那样具备这样"高级"的功能?答案是:虽然微软为WebForm提供的DataGrid组件也考虑了数据排序功能,但却不像为编写WinForm程序提供的DataGrid组件在实现数据排序功能上的操作步骤那么简单,在ASP.NET页面中要实现DataGrid组件的数据排序需要设定组件的某些属性和加入一些处理代码才可以实现。本文就将详细讨论一下这个问题。

  一.本文中介绍的程序的设计和运行环境:

  (1).视窗2000高级服务器版

  (2).Visual Studio .Net中文正式版,.Net FrameWork SDK版本号3705

  二.ASP.NET页面中DataGrid实现数据排序的实现原理:

  在ASP.NET页面中实现DataGrid的数据绑定数据排序,有二种实现方法,这二种方法有异曲同工之效,具体如下:

  1. 在实现ASP.NET页面中的DataGrid组件数据绑定时,设定DataGrid组件数据源使用的是DataView,DataView有一个属性"Sort"。通过"Sort"属性设定此数据源以何排序和排序的方式(即升、降序),从而实现对DataGrid中数据排序。

  2. 通过设定Sql语句,为数据绑定产生不同的DataSet,从而实现DataGrid中的数据排序。

  这二种方法虽然能够实现相同的功能,但第一种方法实现较简单,但实现功能有限,

  第二种方法虽然实现起来较复杂,但却可以以此实现较强大的功能。但无论那一种方法,实现DataGrid的数据绑定是首先要完成的。下面首先介绍DataGrid数据绑定的实现方法:

 三.ASP.NET中DataGrid组件数据绑定实现步骤:

  在ASP.NET中实现DataGrid组件的数据绑定方法和在WinForm中数据绑定的方法基本相似。下面是在ASP.NET实现DataGrid组件数据绑定的实现步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual C#项目】。

  4. 将【模板】设置为【ASP.NET Web 应用程序】。

  5. 在【位置】的文本框中输入"http://localhost/dataGridSort"。然后单击【确定】按钮,这样在Visual Studio .Net就会在当前项目文件所在目录中建立一个名称为"dataGridSort"文件夹,里面存放是此项目的项目文件,项目中的其他文件存放的位置是IIS默认的Web站点所在的目录。具体如图02所示:


图02:新建一个ASP.NET项目对话框

  6. 把Visual Studio .Net当前窗口切换到WebForm的设计窗口,并从【工具箱】|【Web组件】选项卡中拖入一个DataGrid组件到WebForm的设计窗口,名称为DataGrid1。

  7. 选中DataGrid1,单击鼠标右键,在弹出的菜单中【自动套用格式】。并在弹出的【自动套用格式】对话框中的【选择方案】栏中选择【专业型 1】。

  8. 设定DataGrid1的字体大小为"X-Small"。此时的DataGrid1为图03所示:


图03:设计后的DataGrid组件样式

  9. 把Visual Studio .Net的当前窗口切换到WebForm的代码编辑窗口,即:WebForm1.aspx.cs文件的编辑窗口。

  10. 在WebForm1.aspx.cs文件首部,用下列代码替换WebForm1.aspx.cs中导入命名空间的代码:

using System ;
using System.Collections ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Web ;
using System.Web.SessionState ;
using System.Web.UI ;
using System.Web.UI.WebControls ;
using System.Web.UI.HtmlControls ;
using System.Data.SqlClient ;
11. 在WebForm1.aspx.cs文件的Page_Load事件代码区添加下列代码,下列代码是实现DataGrid组件的数据绑定:
SqlConnection sqlConnection1 = new SqlConnection ( "Server = localhost ; Database = NorthWind ; User ID = sa ; Password = ; " ) ;
//定义数据库连接
DataSet dataSet1 ;
//创建数据集对象
SqlDataAdapter sqlDataAdapter1 ;
sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter ( "SELECT EmployeeID as 序号 , LastName as 姓氏 , FirstName as 名字 , Title as 职务 , Birthdate as 生日 Fr