日期:2014-05-18  浏览次数:20514 次

GridView的RowDataBound事件

呈现   GridView   控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用   GridViewRow   对象表示)绑定到   GridView   控件中的数据以后,将引发   RowDataBound   事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时都执行一个自定义例程(如修改绑定到该行的数据的值)。

GridViewRowEventArgs   对象将被传给事件处理方法,以便您可以访问正在绑定的行的属性。若要访问行中的特定单元格,请使用   GridViewRowEventArgs   对象的   Cells   属性。使用   RowType   属性可确定正在绑定的是哪一种行类型(标题行、数据行等等)。

下面的代码示例演示如何使用   RowDataBound   事件在数据源中的字段值显示在   GridView   控件中之前修改该值。

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

<script   runat= "server ">
    void   CustomersGridView_RowDataBound(Object   sender,   GridViewRowEventArgs   e)
    {
        if(e.Row.RowType   ==   DataControlRowType.DataRow)
        {
            //   Display   the   company   name   in   italics.
            e.Row.Cells[1].Text   =   " <i> "   +   e.Row.Cells[1].Text   +   " </i> ";
               
        }
    }
</script>

 

<html>
    <body>
        <form   runat= "server ">
               
            <h3> GridView   RowDataBound   Example </h3>

            <asp:gridview   id= "CustomersGridView "  
                datasourceid= "CustomersSqlDataSource "  
                autogeneratecolumns= "true "
                allowpaging= "true "
                onrowdatabound= "CustomersGridView_RowDataBound "  
                runat= "server ">
            </asp:gridview>
                       
            <!--   This   example   uses   Microsoft   SQL   Server   and   connects     -->
            <!--   to   the   Northwind   sample   database.   Use   an   ASP.NET           -->
            <!--   expression   to   retrieve   the   connection   string   value       -->
            <!--   from   the   Web.config   file.                                                         -->
            <asp:sqldatasource   id= "CustomersSqlDataSource "    
                selectcommand= "Select   [CustomerID],