اضافه کردن ستون جمع کل به GridView
سه شنبه 30 تیر 1394در این مقاله قصد داریم در انتهای گرید ویو یک خط جهت نمایش جمع ستون ها اضافه کنیم .
ابتدا یک گرید ویو به صفحه اضافه میکنیم
<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;
}
}
خروجی کار به شکل زیر است

- ASP.net
- 4k بازدید
- 2 تشکر