ARTICLE

GridView Control in ASP.NET: Part 10

Posted by Abhimanyu K Vatsa Articles | Visual Basic .NET November 10, 2012
In this article we will discuss how to Display Column Summaries.
Reader Level:

Introduction & Demonstration

Please you do read earlier parts of this article for complete understanding in GridView.

Part - 9

Imagine that we want to display a column total at the bottom of a column. In that case, we can handle the GridView RowDataBound event to sum the values in a column and display the summary in the column footer. For example, in the page given below contains a GridView control that displays a summary column representing the total marks obtained by all students. 

Grid10.gif

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Private TotalMarks As Decimal = 0

    Protected Sub TotalMarks_RowDataBound(ByVal sender As ObjectByVal e AsGridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim Totals As Decimal = CType(DataBinder.Eval(e.Row.DataItem, "TOTAL_MARKS"),Decimal)
            TotalMarks += Totals
        End If
        If e.Row.RowType = DataControlRowType.Footer Then
            Dim lblTotalMarks As Label = CType(e.Row.FindControl("lblTotal"), Label)
            lblTotalMarks.Text = String.Format("Total=" & TotalMarks)
        End If
    End 
Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <style type="text/css">
    
    </style
>
</head>
<
body>
    <form id="form1" runat="server" >

    <asp:GridView
        id="GridView1"
        DataSourceID="SqlDataSource1"
        OnRowDataBound="TotalMarks_RowDataBound"
        AutoGenerateColumns="false"
        ShowFooter="true"
        Runat="server" Width="287px">
        <Columns>
        <asp:BoundField
            DataField="ID"
            HeaderText="ID" />
        <asp:BoundField
            DataField="NAME"
            HeaderText="NAME" />
        <asp:TemplateField HeaderText="Total_Marks">
        <ItemTemplate>
            <%# Eval("TOTAL_MARKS")%>
        </ItemTemplate>
        <FooterTemplate>
            <asp:Label
                id="lblTotal"
                Runat="server" Font-Bold="true" BackColor="Brown"/>
        </FooterTemplate>
        </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:DatabaseConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [ID], [NAME], [TOTAL_MARKS] FROM [MARKSHEET]">
    </asp:SqlDataSource>
    </form
>
</body>
</
html>

Notice that the GridView control uses a TemplateField to represent the MARKS_TOTAL column. The TemplateField includes a <FooterTemplate> that contains a Label control. The TotalMarks_RowDataBound() method displays the total of the marks in this Label control.

HAVE A GREAT CODING!

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter