当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 十天学会ASP.net之第八天

ASP.NET
GridView添加删除按钮终极办法
AjaxPro让.NET的AjaxPro变得简单
c# 实现Word联接Excel的MailMerge功能
解开Ajax技术中的达芬奇密码
专家讲解用.NET编写串口程序的一点心得
利用AJAX和ASP.NET实现简单聊天室
如何快速捕获.NET代码中隐藏的BUG
动态网页原理/.net面面观
从N层到.NET详细剖析原理(2)
从N层到.NET详细剖析原理(1)
ASP.NET效率陷阱之——Attributes
在ASP.NET 2.0中建立站点导航层次(5)
在ASP.NET 2.0中建立站点导航层次(4)
在ASP.NET 2.0中建立站点导航层次(3)
在ASP.NET 2.0中建立站点导航层次(2)
在ASP.NET 2.0中建立站点导航层次(1)
动态网站Web开发PHP、ASP还是ASP.NET(2)
动态网站Web开发PHP、ASP还是ASP.NET(1)
让Apache支持ASP.NET-Apache,ASP.NET
.Net下的数据备份和还原

ASP.NET 中的 十天学会ASP.net之第八天


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 45 ::
收藏到网摘: n/a

  学习目的:初步掌握DATAGRID的使用

  以前在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的分页显示等功能