[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 307
  • Last Modified:

Total on the Grid Footer

I am wondering why my total footer is always zero(0): this is my code;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ARAging.aspx.cs" Inherits="tblCustomer_ARAging" %>

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

    Double Thirty;
    Double Sixty;
    Double Ninety;
    Double OneTwenty;
    Double Over120;
   
    void detailsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            try
            {
                // add the UnitPrice and QuantityTotal to the running total variables
                Thirty += Convert.ToDouble((DataBinder.Eval(e.Row.DataItem, "30 Days")).ToString());
                Sixty += Convert.ToDouble((DataBinder.Eval(e.Row.DataItem, "31-60")).ToString());
                Ninety += Convert.ToDouble(DataBinder.Eval(e.Row.DataItem, "61-90"));
                OneTwenty += Convert.ToDouble(DataBinder.Eval(e.Row.DataItem, "91-120"));
                Over120 += Convert.ToDouble(DataBinder.Eval(e.Row.DataItem, "Over 120"));
            }
            catch
            {
             //  
            }
           
        }
        else if (e.Row.RowType == DataControlRowType.Footer)
        {
            e.Row.Cells[0].Text = "Totals:";

            // for the Footer, display the running totals
            e.Row.Cells[1].Text = Thirty.ToString("n");
            e.Row.Cells[2].Text = Sixty.ToString("n");
            e.Row.Cells[3].Text = Ninety.ToString("n");
            e.Row.Cells[4].Text = OneTwenty.ToString("n");
            e.Row.Cells[5].Text = Over120.ToString("n");
           
            e.Row.Cells[1].HorizontalAlign = e.Row.Cells[2].HorizontalAlign = e.Row.Cells[3].HorizontalAlign = e.Row.Cells[4].HorizontalAlign = e.Row.Cells[5].HorizontalAlign = HorizontalAlign.Right;
            e.Row.Font.Bold = true;
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Aging Receivable</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
       
            BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1" GridLines="Horizontal" ShowFooter="True" OnRowDataBound="detailsGridView_RowDataBound">
           
            <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
            <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
            <Columns>
                <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />
                <asp:BoundField DataField="30 Days" HeaderText="30 Days" SortExpression="30 Days" DataFormatString="{0:n}"/>
                <asp:BoundField DataField="31-60" HeaderText="31-60" SortExpression="31-60" DataFormatString="{0:n}"/>
                <asp:BoundField DataField="61-90" HeaderText="61-90" SortExpression="61-90" DataFormatString="{0:n}"/>
                <asp:BoundField DataField="91-120" HeaderText="91-120" SortExpression="91-120" DataFormatString="{0:n}"/>
                <asp:BoundField DataField="Over 120" HeaderText="Over 120" SortExpression="Over 120" DataFormatString="{0:n}"/>
            </Columns>
            <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
            <AlternatingRowStyle BackColor="#F7F7F7" />
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TradingConnectionString %>"
            SelectCommand="a_spARAging" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
   
    </div>
    </form>
</body>
</html>
 
0
JaimeJegonia
Asked:
JaimeJegonia
  • 5
  • 5
1 Solution
 
novynovCommented:
So, I wrote a little demo app to try what you were doing and it worked fine. The only real difference was that I didn't do any gridview styling - that shouldn't matter. At first I thought the problem might lie with the column names - they aren't valid C# identifier names...so might have caused the databinder to have problems. But, that wasn't it. I did it fine with identical column names.

Have you put a debugger on the rowdatabound handler? Are the totals at least getting accumulated? It would be good to know if the problem lies in the evaluation and storing of the value, or if it is just a  footer rendering problem. That would at least partition the troubleshooting space.

Let me know. I'll be glad to help more.
0
 
novynovCommented:
One other question: My demo assumed that your numeric colums were of SQL type float. Is this the case?
0
 
JaimeJegoniaAuthor Commented:
NovyNov,

It's just a footer rendering problem. The SQL type is decimal(14,2).

Thanks,


0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
novynovCommented:
Very strange: I changed my sql type to match yours, and basically copied your code into a new page verbatim - the only exception is that my db only has 3 of the numeric fields, not 5. All worked well.

When you breakpoint on the Footer row section, does the code get executed? Are the cell values assigned correctly at least in this call?
0
 
novynovCommented:
So, maybe a long shot, but given that I don't see the source for your code behind in your posting above, ARAging.aspx.cs, is it possible that something in there is blowing away the values?
0
 
JaimeJegoniaAuthor Commented:
Thanks. I think my problem is with the null value.
Please see my pivot result against grid total view.

 

Error.PNG
0
 
novynovCommented:
Ahhh...possibly, although you said that the totals were getting calculated correctly in the DataRow section of your event handler. Can you copy in your stored procedure. I'll try to reproduce the results and come up with a solution.
0
 
JaimeJegoniaAuthor Commented:
novynov:

I solved my issue by creating a small conversion function that catches "ArgumentNullException" and return to zero (0).

Anyways, thanks for helping me to come up with the solution and I'll still give you the points.

Jimi  
0
 
JaimeJegoniaAuthor Commented:
Thanks for the help & time.
0
 
JaimeJegoniaAuthor Commented:
There's no change in my SP but "ArgumentNullException" tweak in C# page.
Corrected.PNG
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 5
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now