本文英文原版:
http://aspnet.4guysfromrolla.com/articles/040502-1.aspx
考察DataGrid Web 控件 Part 1
导言:
经典ASP(classic ASP)的最常见的任务之一便是从数据库获取信息并展示在一个HTML表格里面.我们需要很多HTML和代码混合在一起的行才能达到该目的.通常情况下看起来应该像如下这个样子:
Create Database Connection
Populate a recordset based on some SQL query
Output the HTML table header (<table ...>)
Loop through the recordset
Emit the HTML for a table row
...
Emit the HTML table footer (</table>)
ASP.NET的优势在于其包含了很多的Web控件.这些编辑HTML的控件允许开发者将代码和内容分离,并在代码里将HTML实体当作一个对象.也即,如果我们想用ASP.NET展示某些HTML内容,将像下面这样做:
<script language="vb" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
lblMessage.Text = "Hello, World!"
end sub
</script>
<asp:label runat="server" id="lblMessage" />
这里的label Web控件lblMessage看起来和HTML标签很类似,只是有一个runat="server"属性.在Page_Load事件处理器(每次登录页面时都会发生)里,lblMessage的Text属性被设置为"Hello, World!".我们在这里使用Web控件就达到了将代码从内容(content)分离的目的;如果是在经典ASP,为达到相同的效果,我们必须将<%="Hello, World!"%>放置在HTML内容的适当地方.
DataGrid控件比label控件更有用也更强大.DataGrid对绑定的HTML table相应地产生必需的HTML,就像随后我们将看到的那样,将数据绑定到DataGrid是很容易的;另外,通过小小的改动,我们就可以对外观进行定制,呈现出很漂亮的HTML表格( HTML tables).
DataGrid控件基础
要在ASP.NET Web页面上添加一个DataGrid控件,你仅仅需要添加如下的代码:
<asp:datagrid runat="server" id="ID_of_DataGrid" />
其中id值便是DataGrid控件的名字,当你在服务器端代码里引用该控件时就会用到它.为了使DataGrid展示我们所需要的有用东西,我们将把它绑定到某个信息集(collection of information),该信息集可以是任何支持IEnumerable界面的的对象,比如Arrays, collection classes(ArrayList, 哈希表等),DataSets, DataReaders以及其它的对象.
在本文,我们把DataGrid绑定到DataReader.它和ADO/ASP里的Recordset差不多.要了解使用ADO.NET将数据库查询结果写入DataReader的更多细节请参阅文章《read: Efficiently Iterating Through Results from a Database Query using ADO.NET》(译注:网址为http://aspnet.4guysfromrolla.com/articles/032702-1.aspx)
那怎么样将数据绑定到DataGrid呢?非常简单!首先我们要创建一个包含数据库数据的DataReader控件.本例,我们使用ASPFAQs.com的数据库,返回10个最常见的FAQs(即常见问题解答).为将DataReader绑定到DataGrid,我只需要写2行代码.第一行代码将DataGrid控件的DataSource属性设置为DataReader;第二行代码调用DataGrid控件的DataBind方法.
要做的就是这些,就像下面的代码展示的那样:
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>
<script language="vb" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
BindData()
End Sub
Sub BindData()
'1. Create a connection
Dim myConnection as New SqlConnection(
ConfigurationSettings.AppSettings("connectionString"))
'2. Create the command object, passing in the SQL string
Const strSQL as String = "sp_Popularity"
Dim myCommand as New SqlCommand(strSQL, myConnection)
'Set the datagrid's datasource to the datareader and databind
myConnection.Open()
dgPopularFAQs.DataSource = myCommand.ExecuteReader(
CommandBehavior.CloseConnection)
dgPopularFAQs.DataBind()
End Sub
</script>
<asp:datagrid id="dgPopularFAQs" runat="server" />
(注:查看示例的页面为http://aspnet.4guysfromrolla.com/articles/040502-1.aspx)
我们注意到,实现数据绑定的代码一点也不多.在代码里我们创建了一个连接,指定一个SQL命令(在此为一个名为sp_Popularity的存储过程),打开数据库连接,将DataGrid的DataSource属性设置为返回的DataReader,最后调用DataGrid的DataBind方法.该方法完全实现了代码和内容的分离.与经典ASP相比,没有出现HTML table和DataReader的输出结果混杂在一起的情况(意既经典ASP没有实现代码和内容的分离)
花些时间来查看那个示例页面吧,DataGrid展示了我们想要的结果,虽然外观不太好看,但"显示数据"这个目的是达到了的。要美化界面也是很容易的,下一节我们就来探讨这个问题。
结语:
本节,我们考察了DataGrids的基础知识——怎样在页面添加控件并展示绑定的数据,不幸的是界面比较糟糕.然而,正如我们即将看到的那样,美化其界面简直是小菜一碟,另外我们将考察一些用户界面高级选项(比如分页,排序),当然这些是下一节的内容。
祝编程快乐!
分享到:
相关推荐
DataGrid Web控件深度历险
图片是在XP下截的,所以看不出效果,在Win7下效果好点.其中的DataGrid分页绑定控件方法只要传入被绑定的DataGrid对象和数据源就可以绑定了,操作简单.
wpf、C#
DataGrid控件是操作表格、数据库的重要控件,这里是其用法详解
Windows窗体DataGrid控件是NET 1.0/1.1推出的控件,在VS2005中亦可以继续使用,虽然它在功效方面不如NET 2.0新增的控件DataGridView,但它仍有用武之处,特别是对于已完成的项目中使用了该组件时,没有必要更换它,...
DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在...
大家伙,我在这里给大家分享一下最近我在VB中使用的DataGrid控件的部分用法,希望大家下载分享!有更好的还望大家给我推荐,谢谢!
用于解决vb6精简版没有datagrid控件的情况 安装完成后,可能出现“该部件的许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能”提示 请运行vb6cli.exe,该软件我已上传至csdn。并且微软官网提供下载。
功能提示: DataGrid绑定控件示例
vb中datagrid控件的详细使用方法,拿出来给大家看看!!!!是学习datagrid控件的好助手
winfrom datagrid 分页控件 1.支持打印 2.导出 3.隐藏显示列 4.其他
vb中的DataGrid网格控件用法演示,相信很多人都很喜欢使用DataGrid来配合数据库显示内容吧,确实是很基储很直观的一个数据库控件,几乎很多的VB数据库程序中,都可以看到它的身影。这个例子比较简单,但可以让你掌握...
有关VB中DataGrid空间的详细使用情况
可编辑的datagrid表格控件,有需要的快来啊
解压后,点bat对datagrid 控件 进行注册
对MFC中的DataGrid控件的用法进行了一些总结
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
环境:vs2010.功能实现:wpf项目,图片加载到datagrid动态控件中显示。
VC++中DataGrid控件的使用,讲解与数据库绑定并且操作,内部包括所有代码