上一篇:十天学会ASP.net之第九天 >>
十天学会ASP.net之第八天
以前在ASP中,我们显示大批量数据经常使用循环读取记录集的方式,在表格中插入代码来显示,循环的是<tr>,如果是分页还需要自己制作,如果排序更加复杂,在ASP.NET中就好了,一切工作都可以让DATAGRID来做。
首先看一下DATAGRID的样式方面的属性
BackImageUrl="" 背景图片
CellSpacing="" 单元格间距
CellPadding="" 单元格填充
cssClass="" 使用的CSS样式
DATAGRID可以自动用表中的字段名放在显示的记录的头部来表示各个单元格所代表的意义,用ShowHeader="true/false"来控制是不是显示,在大多数情况下我们是不需要这个功能的,因为我们数据库中的字段名大多是英文的,而我们想在页面输出的大多是中文名字。
下面看一下显示数据库内所有记录,就几行代码:
<script runat="server" language="c#">
void Page_Load()
{
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
strConnection+=Server.MapPath("guestbook.mdb");
OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbCommand objCommand1 = new OleDbCommand("select * from guestbook",objConnection);
objConnection.Open();
dgrdMain.DataSource=objCommand1.ExecuteReader();//dgrdMain就是下面的DATAGRID的ID
dgrdMain.DataBind();
objConnection.Close();
}
</script>
<html>
<body>
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
borderwidth="0"
runat="server"
/>
</body>
</html>
至于VB的版本,这次大家自己来试试吧:)
假设数据库是三个字段:id,aa,bb
显示的样子就如下:
id aa bb
1 werwe rewrwe
2 werwe rewrwe
我们一定觉得这种显示不满意,我们有两种显示的方式(需要包括在<columns></columns>中间):
一、默认的列,我们可以选择不输出所有的字段还可以安排顺序:
<asp:BoundColumn DataField="想要显示的字段名">
比如说我们想按照bb,aa来输出这个表,我们这么写
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="true"
autogeneratecolumns="false"
borderwidth="0"
runat="server">
<columns>
<asp:boundcolumn datafield="bb"/>
<asp:boundcolumn datafield="bb"/>
</columns>
</asp:datagrid>
注意使用了autogeneratecolumns="false"以后DATAGRID就不会自动输出所有字段了。
二、以模板列,我们可以定制每一个单元格的样式:
<asp:TemplateColumn>
<itemTemplate>
中间是一个表格,想怎么样就怎么样
</itemTemplate>
</asp:DataGrid>
或许你们要说怎么在表格中输出代码那,可以使用<%# DataBinder.Eval(Container.DataItem,"字段名").ToString()%>
下面看一个例子,我们所要做的就是把aa,bb两个字段放在一个单元格内显示,就好像下面一样:
1 werwe
rewrwe
2 werwe
rewrwe
我们这样写代码:
<asp:DataGrid
id="dgrdMain"
cellpadding="1"
showheader="false"
autogeneratecolumns="false"
borderwidth="0"
runat="server">
<columns>
<asp:boundcolumn datafield="ii"/> 首先使用默认的显示方式显示ID
<asp:TemplateColumn> 再使用模板来显示后面一列(由AA,BB并列组成)
<itemTemplate>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td><%# Container.DataItem("aa")%></td>
</tr>
<tr>
<td><%# Container.DataItem("bb")%></td>
</tr>
</table>
</itemTemplate>
</asp:DataGrid>
</columns>
</asp:datagrid>
今天就说到这里,明天我们来看一下DATAGRID的分页显示等功能
下一篇:十天学会ASP.net之第七天 >>
相关文章:
- · ASP.NET 开发聊天室程序(英文)
- · asp.net高级教程(续)
- · asp.net高级教程
- · ASP+与ASP有什么不同
- · NET 简介、Hello World 和 .NET Runtime 一瞥
- · ASP.NET 入门的五个步骤
- · 深入讲解 ASP+ 验证
- · ASP.NET Pre-Compilation and Keep-Alive
- · 动态创建DataGrid的模版列
- · 让Asp.Net输出图形
- · 文件下载的权限控制(asp.net)
- · 大数据量下的分页
- · 从 .NET 程序集提供图像(二)
- · 从 .NET 程序集提供图像(一)
- · 用ASP.NET设计优秀系统(一)
- · Henry手记 - Datagrid键盘事件响应(二)
- · Henry手记 - Datagrid键盘事件响应(一)
- · 在ASP.NET下实现数字和字符相混合的验证码(C# Code)
- · 在ASP.NET下实现数字和字符相混合的验证码(vb.net Code)
- · 大数据量下的分页
- · 让Asp.NET的DataGrid可排序、可选择、可分页
- · 利用ASP.NET DataGrid显示主次关系的数据
- · 如何使用PagedDataSource來做DataRepeater的分頁的效果
- · ASP .NET 中的身份验证:.NET 安全性指导
- · 在Asp.Net中从sqlserver检索(retrieve)图片
- · 如何在ASP.Net 中把图片存入数据库
- · 在两个ASP.NET页面之间传递值
- · 用ASP.NET构建完整E-mail发送系统
- · 用ASP.NET开发Web服务的五则技巧
- · 在两个ASP.NET页面之间传递值
- · 用DataReader还是DataSet?
- · 使用Mobile控件
- · 用javascript解决ASP.NET服务器控件造成的刷新问题
- · ASP.NET相关问题14问
- · ASP.NET中水晶报表的使用
- · ASP.NET编程中的十大技巧
- · 浅谈在ASP.NET中数据有效性校验的方法
- · 一个文件上传的类
