zoukankan      html  css  js  c++  java
  • asp.net初步掌握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>

  • 相关阅读:
    jvm系列(八):jvm知识点总览-高级Java工程师面试必备
    jvm系列(七):jvm调优-工具篇
    JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
    Java ClassLoader详解
    语言堆栈入门——堆和栈的区别
    kubernetes基本了解
    软编码和硬编码的理解
    前台页面传日期类型后台接收问题
    mybatis-plus简单了解
    二叉树基础知识
  • 原文地址:https://www.cnblogs.com/huashanlin/p/498064.html
Copyright © 2011-2022 走看看