datagrid控件是.net中最丰富最复杂的控件,它支持记录排序和分页!
本文代码用VB.NET编写,论坛上有C版本,地址:http://www.blueidea.com/bbs/NewsDetail.asp?GroupName=Dreamweaver+MX+Developer+%D3%EB%CA%FD%BE%DD%BF%E2%B1%E0%B3%CC&DaysPrune=5&lp=1&id=1276309
代码拷贝框<%import namespace="system.data.oledb"%> <script runat="server"> sub page_load if not ispostback then databind end if end sub sub databind dim strsql as string dim objconn as oledbconnection dim objcomm as oledbcommand objconn = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source="&server.mappath("*.mdb")) strsql = "select * from table_name " objcomm = new oledbcommand(strsql,objconn) objconn.open() mydgrd.datasource=objcomm.executereader() mydgrd.databind() objconn.close() end sub </script> <html><body> <asp:datagrid id = "mydgrd" runat="server" /> </body></html>[Ctrl+A 全部选择 然后拷贝]
上面代码就不需要解释很多了,第一行是导入名称空间,这里用的是ACCESS数据库,如果是用SQL的话就应该是<%@ import namespace="system.data.sqlclient"%> 在这里,ID为"mydgrd"的datagrid控件将显示数据表中的所有字段的值,但有时我们并不需要显示所有的字段值,如何实现呢?那就要修改datagrid控件的autogeneratecolumns属性了,默认下是true,表示显示数据表中的所有字段值,如果设为false则可由我们自己控制了!现在修改一下上面的代码!代码拷贝框<%import namespace="system.data.oledb"%> <script runat="server"> sub page_load if not ispostback then databind end if end sub sub databind dim strsql as string dim objconn as oledbconnection dim objcomm as oledbcommand objconn = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source="&server.mappath("*.mdb")) strsql = "select * from table_name " objcomm = new oledbcommand(strsql,objconn) objconn.open() mydgrd.datasource=objcomm.executereader() mydgrd.databind() objconn.close() end sub </script> <html><body> <asp:datagrid [b]autogeneratecolumns = "false"[/b] id = "mydgrd" runat="server" > <columns> <asp:boundcolumn headertext="作者" datafield="authors" /> <asp:boundcolumn headertext="联系电话" datafield="phone" /> </columns> <asp:datagrid> </body></html> [Ctrl+A 全部选择 然后拷贝]
注意:此时我们在datagrid控件中设置了autogeneratecolumns=false,这表示不允许datagrid自动生成列,此时可以由我们自己控制了,然后<columns><asp:boundcolumnheadertext="作者"datafield="authors"/><asp:boundcolumnheadertext="联系电话"datafield="phone"/></columns> <columns>标记代表datagrid中的所有列,boundcolumn是datagrid的默认列,用来显示记录。这里我们声明了二个boundcolumn列,并用headertext属性定义了该列的字段名为"作者",否则默认时会显示authors了,该列的值来自数据表中的authors字段.接下来用一个bouncolumn列显示phone,每位作者的联系电话。所以该代码的执行效果会与上一个完全不同,它只会显示authors和phone二字段的值!
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18