GridView da Bir DataTable İle Sütunlardaki Değerleri Toplama



Merhaba arkadaşlar bu makalemizde GridView sütunlarındaki satırların toplamını, Toplam Tutar sütununda gösterilmesini sağlayacağım. Ayrıca GridView Footer kısmında da her bir sütunun toplamını göstereceğim.


Screenshot

Şekil 1
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DatabindList();
        }

    }
    protected void DatabindList()
    {


        DataTable dt = new DataTable();

        DataColumn dc = new DataColumn();
        dc.ColumnName = "Kitap Adı";
        dc.DataType = typeof(string);
        dt.Columns.Add(dc);

        DataColumn dc2 = new DataColumn();
        dc2.ColumnName = "Fiyat";
        dc2.DataType = typeof(int);
        dt.Columns.Add(dc2);

        DataColumn dc3 = new DataColumn();
        dc3.ColumnName = "Adet";
        dc3.DataType = typeof(int);
        dt.Columns.Add(dc3);

        dt.Columns.Add(new DataColumn("ToplamTutar", typeof(int), "Fiyat * Adet"));

        dt.Rows.Add(new object[] { "A Kitabı", 20, 1 });
        dt.Rows.Add(new object[] { "B Kitabı", 30, 2 });
        dt.Rows.Add(new object[] { "C Kitabı", 40, 3 });
        GridView1.DataSource = dt;
        GridView1.DataBind();

    }

    int sayi = 0;
    decimal Fiyat,Adet,toplamTutar = 0;

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        //Toplam tutar sütununun rengini değiştiriyoruz.
        e.Row.Cells[3].BackColor = System.Drawing.Color.GreenYellow;
        //Toplam tutar sütunundaki satırlardaki yazıların rengini değiştiriyoruz.
        e.Row.Cells[3].ForeColor = System.Drawing.Color.OrangeRed;
        e.Row.Cells[3].Font.Bold = true;
        e.Row.Cells[3].Font.Size = 14;
        //veri satirinda
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // kayit sayisini artiriyoruz.
            sayi += 1;

            // kitap fiyatlarini topluyoruz.
            Fiyat += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Fiyat"));
            // kitap adetlerini topluyoruz.
            Adet += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Adet"));
            // Toplam Tutar fiyatlarini topluyoruz.
            toplamTutar += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "ToplamTutar"));
        }
        //footer içindeki satırda
        else if (e.Row.RowType == DataControlRowType.Footer)
        {

            e.Row.Cells.Clear();
            // yeni tablo hucresini olusturuyoruz.
            TableCell tableCell = new TableCell();
            // tablo degerlerini ayarliyoruz
            tableCell.ColumnSpan = 4;
            // yaziyi ortaliyoruz.
            tableCell.HorizontalAlign = HorizontalAlign.Center;
            //fontu ayarliyoruz.
            tableCell.Font.Size = 14;
            tableCell.Font.Bold = true;
            // footer da gorunmesini istedigimiz text i yaziyoruz.
            tableCell.Text = "Kayıt Sayısı = " + sayi.ToString() +" Fiyat=" + Fiyat+ " Adet="+Adet+" Tutar=" +toplamTutar;
            // ve ekliyoruz.
            e.Row.Cells.Add(tableCell);


        }

    }
    }   

Default.aspx

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <asp:GridView ID="GridView1" runat="server" ShowFooter="True"
                      OnRowDataBound="GridView1_RowDataBound" >
        </asp:GridView>
   
    </div>
    </form>
</body>
</html>
    
     
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 comments:

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...