GridView - somando rodapé

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > ASP Controls > GridView >

GridView - somando rodapé

Previous pageReturn to chapter overviewNext page

Default.aspx - exemplo 1

 

<asp:GridView ID="Grid" runat="server" ShowFooter="True" Caption="Titulo" ondatabound="Grid_DataBound"></asp:GridView>

 

Default.aspx - exemplo 2

 

<asp:GridView ID="Grid" runat="server" ShowFooter="True" Caption="Titulo" onrowdatabound="Grid_RowDataBound"></asp:GridView>

 

Default.aspx.cs - parte comum (dos dois exemplos abaixo)

 

using System;

using System.Collections.Generic;

using System.Web.UI.WebControls;

 

public class Cliente

{

  public int Id { get; set; }

  public string Nome  { get; set; }

  public decimal Salario { get; set; }

}

 

public static class Listagem

{

  public static List<Cliente> GetClientes()

   {

      List<Cliente> lista = new List<Cliente>();

       lista.Add(new Cliente() { Id = 1, Nome = "Angelina", Salario = (decimal)5000.00 });

       lista.Add(new Cliente() { Id = 2, Nome = "Scarlet", Salario = (decimal)1000.2 });

       lista.Add(new Cliente() { Id = 3, Nome = "Inara", Salario = (decimal)354.32 });

       lista.Add(new Cliente() { Id = 4, Nome = "Zoe", Salario = (decimal)100.24 });

       lista.Add(new Cliente() { Id = 5, Nome = "Keylee", Salario = (decimal)90.2 });

       lista.Add(new Cliente() { Id = 6, Nome = "Lara", Salario = (decimal)3400.0 });

       lista.Add(new Cliente() { Id = 7, Nome = "Ripley", Salario = (decimal)1200 });

       lista.Add(new Cliente() { Id = 8, Nome = "Samus", Salario = (decimal)0.99});

       lista.Add(new Cliente() { Id = 9, Nome = "Peach", Salario = (decimal)102.22 });

       lista.Add(new Cliente() { Id = 10, Nome = "Zelda", Salario = (decimal)11.11 });

       lista.Add(new Cliente() { Id = 11, Nome = "Trinity", Salario = (decimal)12.2 });

       lista.Add(new Cliente() { Id = 12, Nome = "Leia", Salario = (decimal)98.22 });

       lista.Add(new Cliente() { Id = 13, Nome = "Lois", Salario = (decimal)3.78 });

       lista.Add(new Cliente() { Id = 14, Nome = "Cloe", Salario = (decimal)14.45 });

       lista.Add(new Cliente() { Id = 15, Nome = "Lana", Salario = (decimal)10.0 });

       lista.Add(new Cliente() { Id = 16, Nome = "Sun", Salario = (decimal)180.8 });

       lista.Add(new Cliente() { Id = 17, Nome = "Sardenta", Salario = (decimal)201.9 });

       lista.Add(new Cliente() { Id = 18, Nome = "Loraine", Salario = (decimal)1200.8 });

       lista.Add(new Cliente() { Id = 19, Nome = "Sarah Connor", Salario = (decimal)1100.77 });

 

      return lista;

   }

}

 

public partial class _Default : System.Web.UI.Page

{

  protected void Page_Load(object sender, EventArgs e)

   {

      if (!IsPostBack)

       {

           Grid.DataSource = Listagem.GetClientes();

           Grid.DataBind();

       }

   }

 

      ...

   parte que muda

        ...

}

 

 

Default.aspx.cs - Maneira 1

 

  protected void Grid_DataBound(object sender, EventArgs e)

   {

      decimal valor = 0;

 

      foreach (GridViewRow row in Grid.Rows)

       {

           valor += Decimal.Parse(row.Cells[3].Text);

       }

 

      GridViewRow footer = Grid.FooterRow;

       footer.Cells[0].ColumnSpan = 3;

       footer.Cells[0].HorizontalAlign = HorizontalAlign.Center;

 

       footer.Cells.RemoveAt(2);

       footer.Cells.RemoveAt(1);

       footer.Cells[0].Text = "Total: " + valor.ToString("C");

   }

 

 

Default.aspx.cs - Maneira 2 

 

  decimal total = 0;

 

  protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)

   {

      if (e.Row.RowType == DataControlRowType.DataRow)

       {

          Cliente cliente = (Cliente)e.Row.DataItem;

           total += cliente.Salario;

       }

      else

          if (e.Row.RowType == DataControlRowType.Footer)

           {

               e.Row.Cells[2].Text = total.ToString("c");

           }

   }