اضافه کردن ستون جمع کل به 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 تشکر