I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Introduction
In this article i will show you how to show total of all rows of GridView column. I will give you an example of this problem.Suppose you have a one numeric type columnn in your data table and you want to add all column values.Also display sum of column in footerRow of the GridView. If we think about algorithm for this type of problem. Algorithm say that first we take a Gridview with Two template field , One template field have one item template and one footer template such as
In this article i will show you how to show total of all rows of GridView column. I will give you an example of this problem.Suppose you have a one numeric type columnn in your data table and you want to add all column values.Also display sum of column in footerRow of the GridView. If we think about algorithm for this type of problem. Algorithm say that first we take a Gridview with Two template field , One template field have one item template and one footer template such as
<asp:TemplateField HeaderText ="Name">
<ItemTemplate >
<asp:Label ID="Label1" runat="server" Text='<%# Eval("namet") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate >
Total:
</FooterTemplate>
</asp:TemplateField>
Another template field have same field which is take above such as
<asp:TemplateField HeaderText ="Income">
<ItemTemplate>
<asp:Label ID="incomelbl" runat="server" Text='<%# Eval("Income") %>' />
</ItemTemplate>
<FooterTemplate >
<asp:Label ID="footerlbl" runat="server" Text="" />
</FooterTemplate>
</asp:TemplateField>
This whole part cover designing
In codebehind model first we would bind GridView on page Load method. After that handle RowDataBound event . In RowDataBound event first check Row type is DataRow.
After that find income label in Gridview using findcontrol method.
if (e.Row.RowType ==DataControlRowType .DataRow)
{
var incomsal = e.Row.FindControl("incomelbl") as Label;
if (incomsal != null)
{
total += int.Parse(incomsal.Text);
}
}
Here Total is a integer variable.
Now Show Total income to footer label then you must find control from the footer row on Page_Load method
protected void Page_Load(object sender, EventArgs e)
{
if (!Page .IsPostBack)
{
binddata();
var footlbl = GridView1.FooterRow.FindControl("footerlbl") as Label;
if (footlbl != null)
{
footlbl.Text = total.ToString();
}
}
}
After founded , Total value assign to footer label
Run you program.
Complete code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="additem.aspx.cs" Inherits="additem" %>
<!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" AutoGenerateColumns ="false" OnRowDataBound="GridView1_RowDataBound">
<Columns >
<asp:TemplateField HeaderText ="Name">
<ItemTemplate >
<asp:Label ID="Label1" runat="server" Text='<%# Eval("namet") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate >
Total:
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText ="Income">
<ItemTemplate>
<asp:Label ID="incomelbl" runat="server" Text='<%# Eval("Income") %>' />
</ItemTemplate>
<FooterTemplate >
<asp:Label ID="footerlbl" runat="server" Text="" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="result" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
Codebehind
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class additem : System.Web.UI.Page
{
int total = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page .IsPostBack)
{
binddata();
var footlbl = GridView1.FooterRow.FindControl("footerlbl") as Label;
if (footlbl != null)
{
footlbl.Text = total.ToString();
}
}
}
public void binddata()
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
con.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandText = "Select * from [footerex]";
cmd.Connection = con;
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType ==DataControlRowType .DataRow)
{
var incomsal = e.Row.FindControl("incomelbl") as Label;
if (incomsal != null)
{
total += int.Parse(incomsal.Text);
}
}
}
}
Output
Comments
Post a Comment