اضافه کردن ستون جمع کل به GridView

سه شنبه 30 تیر 1394

در این مقاله قصد داریم در انتهای گرید ویو یک خط جهت نمایش جمع ستون ها اضافه کنیم .

اضافه کردن ستون جمع کل به GridView

ابتدا یک گرید ویو به صفحه اضافه میکنیم


    <form id="form1" runat="server">  
       <div>  
          <asp:GridView ID="GridView1" runat="server" AlternatingRowStyle-BackColor="Wheat" ShowFooter="true">  
          </asp:GridView>  
       </div>  
    </form>  

خاصیت ShowFooter را برابر با True قرار میدهیم

 

صفحه Design ما به شکل زیر است

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>مرجع تخصصی برنامه نویسان</title>
</head>
<body dir="rtl">
    <form id="form1" runat="server">
    <div>
        <a href="http://barnamenevisan.org/">
            <h1>مرجع تخصصی برنامه نویسان</h1>
        </a>
      <asp:GridView ID="GridView1" runat="server" AlternatingRowStyle-BackColor="Wheat" ShowFooter="true">
            </asp:GridView>
    </div>
    </form>
</body>
</html>

 

سپس فضاهای نام زیر را اضافه میکنیم


    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Data;  
    using System.Data.SqlClient;  

 

و با استفاده از متد زیر اطلاعات پیشفرض به همراه خط جمع کل را اضافه میکنیم

        protected void BindGridviewFooter()
        {

            //Creating a dataset
            DataSet ds = new DataSet();
            DataTable dt;
            DataRow dr;
            DataColumn pName;
            DataColumn pQty;
            DataColumn pPrice;
            DataColumn pCategory;
            //create an object of datatable
            dt = new DataTable();
            //creating column of datatable with datatype
            pName = new DataColumn("Product_Name", Type.GetType("System.String"));
            pQty = new DataColumn("Quantity", Type.GetType("System.Int32"));
            pPrice = new DataColumn("Price", Type.GetType("System.Int32"));
            pCategory = new DataColumn("Category", Type.GetType("System.String"));
            //bind data table columns in datatable
            dt.Columns.Add(pName);
            dt.Columns.Add(pQty);
            dt.Columns.Add(pPrice);
            dt.Columns.Add(pCategory);
            //creating data row and assiging the value to columns of datatable
            dr = dt.NewRow();
            dr["Product_Name"] = "کفش ورزشی";
            dr["Quantity"] = 2;
            dr["Price"] = 200;
            dr["Category"] = "ورزشی";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Product_Name"] = "ساک ورزشی";
            dr["Quantity"] = 5;
            dr["Price"] = 480;
            dr["Category"] = "ورزشی";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Product_Name"] = "کت";
            dr["Quantity"] = 8;
            dr["Price"] = 100;
            dr["Category"] = "پوشاک";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Product_Name"] = "تیشرت";
            dr["Quantity"] = 2;
            dr["Price"] = 500;
            dr["Category"] = "پوشاک";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Product_Name"] = "ریش تراش";
            dr["Quantity"] = 8;
            dr["Price"] = 100;
            dr["Category"] = "بهداشتی";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["Product_Name"] = "برس";
            dr["Quantity"] = 3;
            dr["Price"] = 90;
            dr["Category"] = "بهداشتی";
            dt.Rows.Add(dr);



            ds.Tables.Add(dt);
            GridView1.DataSource = ds.Tables[0];
            GridView1.DataBind();
            //here add code for column total sum and show in footer
            int total = 0; ;
            GridView1.FooterRow.Cells[0].Text = "جمع";
            GridView1.FooterRow.Cells[1].Font.Bold = true;
            GridView1.FooterRow.Cells[1].HorizontalAlign = HorizontalAlign.Left;
            for (int k = 1; k < dt.Columns.Count - 1; k++)
            {
                total = dt.AsEnumerable().Sum(row => row.Field<Int32>(dt.Columns[k].ToString()));
                GridView1.FooterRow.Cells[k].Text = total.ToString();
                GridView1.FooterRow.Cells[k].Font.Bold = true;
                GridView1.FooterRow.BackColor = System.Drawing.Color.Beige;
            }
        }

 

خروجی کار به شکل زیر است

فایل های ضمیمه

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید