• 5.4 网格视图控件GridView (1)


    5.4  网格视图控件GridView

    GridView控件又称为网格视图控件,它能够以数据网格形式显示数据,并能够对这些数据进行编辑、排序、分页、自定义样式等操作。

    5.4.1  GridView控件概述

    GridView控件可以显示、编辑、排序、分页、删除其数据源中的数据。其中,这些数据源可以是数据库(如SQL Server、Access、Oracle等)、XML文件、公开数据的业务对象等。GridView控件能够实现如下功能。

    *     显示数据,即把数据源绑定到控件。

    *     行选择功能。

    *     编辑数据,包括更新和删除数据等。

    *     排序功能,可以按照列对显示的数据进行排序。

    *     分页功能,可以对数据源中的数据进行分页显示。

    *     同时保存多个键字段的值。

    *     自定义控件的列样式和外观。

    *     动态处理GridView控件的事件。

    GridView控件的基本属性如表5-19所示。

    表5-19                                                   GridView控件的基本属性

    属    性

    描    述

    AutoGenerateColumns

    是否为数据源中的每个字段自动创建绑定字段

    AutoGenerateDeleteButton

    是否为每一个数据行添加【删除】按钮

    AutoGenerateEditButton

    是否为每一个数据行添加【编辑】按钮

    续表

    属    性

    描    述

    AutoGenerateSelectButton

    是否为每一个数据行添加【选择】按钮

    BackImageUrl

    控件背景图像的URL

    Caption

    控件的标题

    CaptionAlign

    控件的标题排列方式,可以是水平排列或垂直排列

    CellPadding

    单元格的内容和单元格的边框之间的空间量

    CellSpacing

    单元格间的空间量

    Columns

    控件中列的集合

    DataKeyNames

    控件的项的主键字段的名称的集合

    DataKeys

    控件中的每一行的数据键值的集合

    EditIndex

    编辑行的索引

    GridLines

    控件的网格线样式

    HorizontalAlign

    控件在页面上的水平对齐方式

    RowHeaderColumn

    控件的列标题的列的名称

    Rows

    控件中行的集合

    SelectedDataKey

    控件中选定行的数据键值

    UseAccessibleHeader

    控件是否以易于访问的格式呈现其标题

    SelectedIndex

    控件中的选定行的索引

    SelectedValue

    控件中选定行的数据键值

    ShowHeader

    是否在控件中显示标题行

    ShowFooter

    是否在控件中显示脚注行

    EmptyDataText

    当控件的数据源为空时,控件显示的文本

    5.4.2  GridView控件的模板和行

    GridView控件支持两种模板:EmptyDataTemplate和PagerTemplate。当GridView控件的数据源为空时,控件显示第一个模板的内容(如果定义了该模板)。PagerTemplate模板定义了GridView控件的与页导航相关内容的模板。

    DataList控件称它的数据行为“Item”,GridView控件称它的数据行为“Row”。GridView控件也包含了与DataList控件相对应的行,如HeaderRow、FooterRow、SeletedRow等。同时,GridView控件还定义了行的样式,如HeaderStyle、FooterStyle、SelectedRowStyle等。GridView控件中与模板、行及其样式相关的属性如表5-20所示。

    表5-20                                            GridView控件的模板、行或样式

    模板、行或样式名称

    描    述

    EmptyDataTemplate

    空数据模板。当控件绑定的数据源为空时,显示该模板的内容

    PagerTemplate

    页模板,与页导航行相关的内容

    EmptyDataRowStyle

    空数据模板的样式

    续表

    模板、行或样式名称

    描    述

    PagerStyle

    页模板的样式

    HeaderRow

    控件的标题行

    SelectedRow

    控件的选定行

    FooterRow

    控件的脚注行

    TopPagerRow

    控件中的页导航顶部行

    BottomPagerRow

    控件中的页导航底部行

    HeaderStyle

    标题行的样式

    RowStyle

    数据行的样式

    AlternatingRowStyle

    交替行的样式

    SelectedRowStyle

    选定行的样式

    EditRowStyle

    编辑行的样式

    FooterStyle

    脚注行的样式

    下面的代码实例声明了一个GridView控件和一个SqlDataSource控件。其中,GridView控件的ID属性的值为gvUser。该控件声明了两种模板:EmptyDataTemplate和PagerTemplate。另外,gvUser控件使用SqlDataSource控件myDSUser作为数据源,显示用户表User中的记录。

    注意

    当gvUser控件的数据源为空时,该控件才显示EmptyDataTemplate模板定义的内容。在此,笔者添加了ID属性值为btnEmpty的按钮。用户单击该按钮,就把gvUser控件的数据源设置为空,此时可以看到EmptyDataTemplate模板定义的内容。

    <!-- Sample_05_04的Column.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server">

    protected void btnEmpty_Click(object sender,EventArgs e)

    {

        gvUser.DataSourceID = "";gvUser.DataSource = null;gvUser.DataBind();

    }

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"><title>GridView控件的模板列</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        AllowPaging="True" DataKeyNames="ID" DataSourceID="myDSUser">

        <EmptyDataTemplate>

            当数据为空时,显示该模板列的内容。

        </EmptyDataTemplate>

        <PagerTemplate>

            <asp:LinkButton ID="lbFirst" runat="server">首页</asp:LinkButton>

            <asp:LinkButton ID="lbPrev" runat="server">上一页</asp:LinkButton>

            <asp:LinkButton ID="lbNext" runat="server">下一页</asp:LinkButton>

            <asp:LinkButton ID="lbLast" runat="server">末页</asp:LinkButton>

        </PagerTemplate>

        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID"

                InsertVisible="False" ReadOnly="True" SortExpression="ID" />

            <asp:BoundField DataField="UserName" HeaderText="UserName"

                SortExpression="UserName" />

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" />

        </Columns>

    </asp:GridView>

    <asp:Button ID="btnEmpty" runat="server" OnClick="btnEmpty_Click"

        Text="设置数据源为空" />

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

            FROM [User]"></asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例的执行之后,Column.aspx页面如图5.25所示。单击【设置数据源为空】按钮,把gvUser控件的数据源设置为空。此时,gvUser控件显示EmptyDataTemplate模板定义的内容,如图5.26所示。

        

               图5.25  Column.aspx页面初始界面            图5.26  gvUser控件显示空模板的内容

    5.4.3  GridView控件的域

    GridView控件的Columns属性表示该控件中域(Field)的集合。该集合中的每一个元素的基类型都为DataControlField。GridView控件共包括7种域,如BoundField、ButtonField等。它们的具体说明如表5-21所示。

    表5-21                                                         GridView控件的域

    域  名  称

    描    述

    BoundField

    绑定域,显示数据源中字段的值

    ButtonField

    按钮域,显示一个命令按钮

    CommandField

    命令按钮域,显示执行选择、编辑或删除操作的预定义命令按钮

    CheckBoxField

    复选框域,一般用来显示具有布尔值的字段的值

    HyperLinkField

    超链接域,将数据源中某个字段的值显示为超链接

    ImageField

    图像域,显示一个图像

    TemplateField

    模板域,用户可以自定义该域的内容

    下面的代码实例声明了一个GridView控件和一个SqlDataSource控件。其中,GridView控件的ID属性的值为gvUser。该控件声明了9个域。其中,第1、7和8个域为Command域;第2个域为HyperLink域;第3、4个域为Bound域;第5个域为Image域;第6个域为CheckBox域;第9个域为Button域。另外,gvUser控件使用SqlDataSource控件myDSUser作为数据源,显示用户表User中的记录。

    <!-- Sample_05_04的Field.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server"></script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"><title>GridView控件的域</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        DataKeyNames="ID" DataSourceID="myDSUser">

        <Columns>

            <asp:CommandField ShowSelectButton="True" />

            <asp:HyperLinkField DataTextField="UserName" HeaderText="Username"

                DataNavigateUrlFields="ID" DataNavigateUrlFormatString="#{0}"/>

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" />

            <asp:ImageField DataImageUrlField="ID" HeaderText="标记"

                DataImageUrlFormatString="~/Images/xp.gif" ></asp:ImageField>

            <asp:CheckBoxField Text="可见"/>

            <asp:CommandField ShowEditButton="True" />

            <asp:CommandField ShowDeleteButton="True" />

            <asp:ButtonField Text="链接" ButtonType="Link"

                DataTextField="Username" />

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

            FROM [User]"></asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例的执行结果如图5.27所示。

    图5.27  使用GridView控件的域

    5.4.4  编辑数据

    GridView控件对数据具有内置的编辑功能,它能够直接修改或删除数据源中的数据。该控件的CommandField域中可以提供【编辑】、【取消】、【更新】和【删除】按钮。这些按钮分别执行编辑状态、取消编辑、更新数据和删除数据等操作。

    默认情况下,GridView控件以只读模式显示数据。若控件启用了编辑功能,且处于编辑模式时,则被编辑行的位置不再显示文本,而是显示可编辑控件(如TextBox、CheckBox等控件)。此时,用户可以在可编辑控件中直接编辑数据。单击【取消】按钮,可以取消编辑操作,单击【更新】按钮,将把编辑的结果提交到数据库中。另外,GridView控件还提供了6个与编辑相关的事件,如表5-22所示。

    表5-22                                            GridView控件与编辑相关的事件

    事    件

    描    述

    RowEditing

    单击【编辑】按钮以后,在控件进入编辑模式之前发生

    RowCancelingEdit

    单击【取消】按钮以后,在该行退出编辑模式之前发生

    RowUpdating

    单击【更新】按钮以后,在执行更新操作之前发生

    RowUpdated

    单击【更新】按钮以后,在执行更新操作之后发生

    RowDeleting

    单击【删除】按钮以后,在执行删除操作之前发生

    RowDeleted

    单击【删除】按钮以后,在执行删除操作之后发生

    下面的代码实例声明了一个GridView控件和一个SqlDataSource控件。其中,GridView控件的ID属性的值为gvUser。该控件声明了四个BoundField和两个CommandField。其中,四个BoundField分别显示用户的ID、名称、Email和创建时间。两个CommandField分别显示【编辑】按钮和【取消】按钮。另外,gvUser控件使用SqlDataSource控件myDSUser作为数据源,显示用户表User中的记录。

    注意

    SqlDataSource控件myDSUser提供了对数据的选择、插入、编辑、删除等功能。

    <!-- Sample_05_04的Edit.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server"></script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"><title>编辑数据</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        DataKeyNames="ID" DataSourceID="myDSUser" Font-Size="9pt">

        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID"

                InsertVisible="False" ReadOnly="True" SortExpression="ID" />

            <asp:BoundField DataField="UserName" HeaderText="UserName"

                SortExpression="UserName" />

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" ReadOnly="True" />

            <asp:CommandField ShowEditButton="True" />

            <asp:CommandField ShowDeleteButton="True" />

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

            FROM [User]" DeleteCommand="DELETE [User] WHERE ID = @ID"

        InsertCommand="INSERT INTO [User](Username,Email,RoleID,CreateDate)

            VALUES(@Username,@Email,1,GetDate())"

        UpdateCommand="UPDATE [User] SET Username = @Username,

            Email = @Email,CreateDate = GetDate() WHERE ID = @ID">

        <DeleteParameters><asp:Parameter Name="ID" /></DeleteParameters>

        <UpdateParameters>

            <asp:Parameter Name="Username" />

            <asp:Parameter Name="Email" />

            <asp:Parameter Name="ID" />

        </UpdateParameters>

        <InsertParameters>

            <asp:Parameter Name="Username" /><asp:Parameter Name="Email" />

        </InsertParameters>

    </asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例的执行之后,Edit.aspx页面如图5.28所示。单击第3行中的【编辑】链接,gvUser控件处于编辑状态,如图5.29所示。

       

           图5.28  Edit.aspx页面的初始界面                  图5.29  gvUser控件编辑数据

    5.4.5  排序数据

    GridView控件内置了排序功能,能够对显示的数据按列排序。若要启用GridView控件的排序功能,只要把它的AllowSorting属性的值设置为true即可。此时,GridView控件把每一列的标题显示为链接。单击每一列的标题可以对该列数据进行排序。GridView控件与排序相关的属性如表5-23所示。

    表5-23                                          GridView控件与排序相关的的属性

    属    性

    描    述

    AllowSorting

    是否启用排序功能

    SortDirection

    排序的方向,即正序还是倒序

    SortExpression

    排序表达式

    下面的代码实例声明了一个GridView控件和一个SqlDataSource控件。其中,GridView控件的ID属性的值为gvUser。该控件声明了4个BoundField,它们分别显示用户的ID、名称、Email和创建时间。gvUser控件还启用了排序功能。另外,gvUser控件使用SqlDataSource控件myDSUser作为数据源,显示用户表User中的记录。

    <!-- Sample_05_04的Sort.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server"></script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"><title>排序数据</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        DataKeyNames="ID" DataSourceID="myDSUser" Font-Size="9pt"

        AllowSorting="True">

        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID"

                InsertVisible="False" ReadOnly="True" SortExpression="ID" />

            <asp:BoundField DataField="UserName" HeaderText="UserName"

                SortExpression="UserName" />

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" ReadOnly="True" />

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

            FROM [User]" DeleteCommand="DELETE [User] WHERE ID = @ID"

        InsertCommand="INSERT INTO [User](Username,Email,RoleID,CreateDate)

            VALUES(@Username,@Email,1,GetDate())"

        UpdateCommand="UPDATE [User] SET Username = @Username,

            Email = @Email,CreateDate = GetDate() WHERE ID = @ID">

        <DeleteParameters><asp:Parameter Name="ID" /></DeleteParameters>

        <UpdateParameters>

            <asp:Parameter Name="Username" />

            <asp:Parameter Name="Email" />

            <asp:Parameter Name="ID" />

        </UpdateParameters>

        <InsertParameters>

            <asp:Parameter Name="Username" /><asp:Parameter Name="Email" />

        </InsertParameters>

    </asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例的执行之后,Sort.aspx页面如图5.30所示。单击第3列的标题【Email】链接,gvUser控件对第3列进行排序,如图5.31所示。

      

             图5.30  Sort.aspx页面的初始界面             图5.31  gvUser控件对数据进行排序

    5.4.6  分页数据

    GridView控件提供了内置分页功能,它能够以分页方式显示数据源中的数据。若要启用GridView控件的分页功能,只要把它的AllowPaging属性的值设置为true即可。GridView控件与分页相关的属性如表5-24所示。

    表5-24                                            GridView控件与分页相关的属性

    属    性

    描    述

    AllowPaging

    是否启用分页功能

    PageCount

    显示数据源记录所需的页数

    PageIndex

    当前显示页的索引

    PagerSettings

    PagerSettings对象,可以设置控件中的页导航按钮的属性

    PageSize

    每页显示记录的数量

    注意

    如果GridView控件启用了分页功能,那么它的数据源必须实现了ICollection接口(集合接口)或数据集,否则将引发分页事件异常。特别地,此时,GridView控件不能使用SqlDataReader对象作为数据源。

    GridView控件的分页模式由它的PagerSettings属性指定。该属性还可以指定分页使用的向前和向后导航的方向控件。GridView控件支持以下4种分页模式。

    *     NextPrevious,显示【上一页】和【下一页】分页导航链接。

    *     NextPreviousFirstLast,显示【首页】、【上一页】、【下一页】和【尾页】分页导航链接。

    *     Numeric,使用分页后的页码编号作为分页导航链接。

    *     NumericFirstLast,使用【首页】、页码编号和【尾页】作为分页导航链接。

    下面的代码实例声明了一个GridView控件和一个SqlDataSource控件。其中,GridView控件的ID属性的值为gvUser。该控件声明了4个BoundField,它们分别显示用户的ID、名称、Email和创建时间。gvUser控件还启用了分页功能。另外,gvUser控件使用SqlDataSource控件myDSUser作为数据源,显示用户表User中的记录。

    <!-- Sample_05_04的Paging.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server"></script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"><title>分页数据</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        DataKeyNames="ID" DataSourceID="myDSUser" Font-Size="9pt"

        AllowPaging="True" PageSize="5">

        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID"

                InsertVisible="False" ReadOnly="True" SortExpression="ID" />

            <asp:BoundField DataField="UserName" HeaderText="UserName"

                SortExpression="UserName" />

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" ReadOnly="True" />

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

            FROM [User]" DeleteCommand="DELETE [User] WHERE ID = @ID"

        InsertCommand="INSERT INTO [User](Username,Email,RoleID,CreateDate)

            VALUES(@Username,@Email,1,GetDate())"

        UpdateCommand="UPDATE [User] SET Username = @Username,

            Email = @Email,CreateDate = GetDate() WHERE ID = @ID">

        <DeleteParameters><asp:Parameter Name="ID" /></DeleteParameters>

        <UpdateParameters>

            <asp:Parameter Name="Username" />

            <asp:Parameter Name="Email" />

            <asp:Parameter Name="ID" />

        </UpdateParameters>

        <InsertParameters>

            <asp:Parameter Name="Username" /><asp:Parameter Name="Email" />

        </InsertParameters>

    </asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例执行之后,Paging.aspx页面如图5.32所示。单击分页区域下方的【3】链接,gvUser控件显示第3页的数据,如图5.33所示。

        

           图5.32  Paging.aspx页面的初始界面               图5.33  gvUser控件显示第3页的数据

    5.4.7  GridView控件的事件

    GridView控件提供了与行的行为、以及对行的数据进行选择、编辑、更新、删除等操作相关的事件,如表5-25所示。

    表5-25                                                      GridView控件的事件

    事    件

    描    述

    RowCreated

    控件创建行时发生

    RowDataBound

    控件绑定行的数据时发生

    DataBound

    控件绑定到数据源后发生

    RowCommand

    单击控件中的按钮时发生

    SelectedIndexChanging

    单击【选择】按钮以后,在选择操作进行处理之前发生

    SelectedIndexChanged

    单击【选择】按钮以后,在选择操作进行处理之后发生

    RowEditing

    单击【编辑】按钮以后,在控件进入编辑模式之前发生

    续表

    事    件

    描    述

    RowCancelingEdit

    单击【取消】按钮以后,在该行退出编辑模式之前发生

    RowUpdating

    单击【更新】按钮以后,在执行更新操作之前发生

    RowUpdated

    单击【更新】按钮以后,在执行更新操作之后发生

    RowDeleting

    单击【删除】按钮以后,在执行删除操作之前发生

    RowDeleted

    单击【删除】按钮以后,在执行删除操作之后发生

    Sorting

    单击【排序】超链接以后,在排序操作进行处理之前发生

    Sorted

    单击【排序】超链接以后,在排序操作进行处理之后发生

    PageIndexChanging

    单击【导航】按钮以后,在处理分页操作之前发生

    PageIndexChanged

    单击【导航】按钮以后,在处理分页操作之后发生

    下面的代码实例声明了一个GridView控件,并定义了该控件的Init、Load、DataBinding、DataBound、RowCreated、RowCommand、RowDataBound和PreRender事件,并且每一个事件在执行时将显示该事件的名称。如果事件与控件的行(Row)相关,则显示当前行(Row)的索引值。

    <!-- Sample_05_04的Click.aspx页面 -->

    <%@ Page Language="C#" %>

    <script runat="server">

    protected void gvUser_DataBinding(object sender,EventArgs e)

    {   ///显示事件的名称

        Response.Write("gvUser_DataBinding()事件正在执行……<br />");

    }

    protected void gvUser_DataBound(object sender,EventArgs e)

    {   ///显示事件的名称

        Response.Write("gvUser_DataBound()事件正在执行……<br />");

    }

    protected void gvUser_RowDataBound(object sender,GridViewRowEventArgs e)

    {   ///显示事件的名称

        Response.Write("第" + (e.Row.RowIndex + 1).ToString()

            + "正在执行gvUser_RowDataBound()事件……<br />");

    }

    protected void gvUser_RowCreated(object sender,GridViewRowEventArgs e)

    {   ///显示事件的名称

        Response.Write("第" + (e.Row.RowIndex + 1).ToString()

            + "正在执行gvUser_RowCreated()事件……<br />");

    }

    protected void gvUser_Init(object sender,EventArgs e)

    {   ///显示事件的名称

        Response.Write("gvUser_Init()事件正在执行……<br />");

    }

    protected void gvUser_Load(object sender,EventArgs e)

    {   ///显示事件的名称

        Response.Write("gvUser_Load()事件正在执行……<br />");

    }

    protected void gvUser_PreRender(object sender,EventArgs e)

    {   ///显示事件的名称

        Response.Write("gvUser_PreRender()事件正在执行……<br />");

    }

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server"> <title>GridView控件的事件</title></head>

    <body><form id="form1" runat="server">

    <asp:GridView ID="gvUser" runat="server" AutoGenerateColumns="False"

        BackColor="White" BorderColor="#336666" BorderStyle="Double"

        BorderWidth="3px" CellPadding="4" GridLines="Horizontal"

        DataKeyNames="ID" DataSourceID="myDSUser" Font-Size="9pt"

        OnDataBinding="gvUser_DataBinding"

        OnDataBound="gvUser_DataBound"

        OnRowDataBound="gvUser_RowDataBound"

        OnRowCreated="gvUser_RowCreated"

        OnInit="gvUser_Init" OnLoad="gvUser_Load"

        OnPreRender="gvUser_PreRender">

        <Columns>

            <asp:BoundField DataField="ID" HeaderText="ID"

                InsertVisible="False" ReadOnly="True" SortExpression="ID" />

            <asp:BoundField DataField="UserName" HeaderText="UserName"

                SortExpression="UserName" />

            <asp:BoundField DataField="Email" HeaderText="Email"

                SortExpression="Email" />

            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate"

                SortExpression="CreateDate" ReadOnly="True" />

        </Columns>

    </asp:GridView>

    <asp:SqlDataSource ID="myDSUser" runat="server" ConnectionString="<%$

        ConnectionStrings:WEB2ASPNET2DBConnectionString %>"

        SelectCommand="SELECT [ID], [UserName], [Email], [CreateDate]

           FROM [User]"></asp:SqlDataSource>

    </form></body>

    </html>

    上述代码实例的执行结果如图5.34所示。

    图5.34  显示GridView控件的事件执行结果

  • 相关阅读:
    json学习笔记
    尾调用学习
    t分布, 卡方x分布,F分布
    第三章 概率 与 概率分布
    二项分布&超几何分布
    第二章 试验资料的整理与特征数的计算
    第一章 常用统计学术语
    python 网络编程 TCP/IP socket UDP
    Python3 标准库概览
    python 输入输出,file, os模块
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/843821.html
Copyright © 2020-2023  润新知