Answered by:
Gridview display total in footer

Question
-
User1821839919 posted
Hi,i need some helps,any idea on display footer in gridview?
Below are my codes :
protected void FillRequestGrid() { if (Session["loggedUserID"] == null && Session["loggedRoleID"] == null) { Response.Redirect("Login.aspx"); } else { int loggedUserID = Convert.ToInt32(Session["loggedUserID"]); List<BOL.UserInfo> userslist = new UserInfos().List(); BOL.UserInfo loggeduser = userslist.Where(x => x.UserID == loggedUserID).FirstOrDefault(); List<BOL.HomeAnnouncement> train_L = new Homes().ATTENDANCE(loggeduser.SUBSIDIARY_CD, "7.00 am - 7.00 pm"); GrdUsers.DataSource = train_L; GrdUsers.DataBind(); } if (GrdUsers.Rows.Count > 0) { GrdUsers.HeaderRow.TableSection = TableRowSection.TableHeader; } } protected void GrdUsers_PageIndexChanging1(object sender, GridViewPageEventArgs e) { GrdUsers.PageIndex = e.NewPageIndex; FillRequestGrid(); }
<asp:GridView ID="GrdUsers" runat="server" CssClass="table table-striped table-bordered table-hover" EmptyDataText="No Records Found" DataKeyNames="Description" AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdUsers_PageIndexChanging1" HeaderStyle-HorizontalAlign="Center" GridLines="None" BorderWidth="2px" EditRowStyle-BorderColor="#000000" EmptyDataRowStyle-BorderStyle="Groove" PageSize="10" Width="70%" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA"> <Columns> <asp:TemplateField HeaderText="Area" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "Description")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Total Employee" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="10%"> <ItemTemplate> <label style="color: black; font-weight: bold"><%#DataBinder.Eval(Container.DataItem, "a_1")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Present" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "a_2")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Absent" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "status")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Percent of employee present(%)" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "PURPOSE")%></label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" /> </asp:GridView>
My current data display:Friday, October 14, 2016 8:40 AM
Answers
-
User283571144 posted
Hi kiang_yit,
Gridview display total in footerAccording to your description, I suggest you could set gridview's showfooter's value to true, firstly.
Then you could use select method and sum method to get the total result in each column.
More details, you could refer to follow codes and image:
<div> <asp:GridView ID="GrdUsers" runat="server" CssClass="table table-striped table-bordered table-hover" EmptyDataText="No Records Found" DataKeyNames="Description" AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdUsers_PageIndexChanging1" HeaderStyle-HorizontalAlign="Center" GridLines="None" BorderWidth="2px" EditRowStyle-BorderColor="#000000" EmptyDataRowStyle-BorderStyle="Groove" PageSize="10" Width="70%" ShowFooter="true" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA"> <Columns> <asp:TemplateField HeaderText="Area" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "Description")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Total Employee" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="10%"> <ItemTemplate> <label style="color: black; font-weight: bold"><%#DataBinder.Eval(Container.DataItem, "a_1")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Present" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "a_2")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Absent" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "status")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Percent of employee present(%)" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "PURPOSE")%></label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" /> </asp:GridView> </div>
Code-behind:
public partial class FooterInGridview : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if ( ! IsPostBack) { FillRequestGrid(); } } protected void FillRequestGrid() { List<HomeAnnouncement> l1 = new List<HomeAnnouncement>(); HomeAnnouncement h1 = new HomeAnnouncement(); h1.a_1 = 2; h1.a_1 = 1; h1.Description = "ENG"; h1.status = 1; h1.PURPOSE = 92.9; HomeAnnouncement h2 = new HomeAnnouncement(); h2.a_1 = 3; h2.a_1 = 4; h2.Description = "PACK"; h2.status = 9; h2.PURPOSE = 91.7; l1.Add(h1); l1.Add(h2);
// show each lines total result: GrdUsers.Columns[0].FooterText = "Total"; GrdUsers.Columns[1].FooterText = l1.Select(x =>x.a_1).Sum().ToString(); GrdUsers.Columns[2].FooterText = l1.Select(x => x.a_2).Sum().ToString(); GrdUsers.Columns[3].FooterText = l1.Select(x => x.status).Sum().ToString(); GrdUsers.Columns[4].FooterText = l1.Select(x => x.PURPOSE).Sum().ToString(); GrdUsers.DataSource = l1; GrdUsers.DataBind(); } protected void GrdUsers_PageIndexChanging1(object sender, GridViewPageEventArgs e) { GrdUsers.PageIndex = e.NewPageIndex; FillRequestGrid(); } } internal class HomeAnnouncement { public string Description { get; set; } public int a_1 { get; set; } public int a_2 { get; set; } public int status { get; set; } public double PURPOSE { get; set; } }Result:
Best Regards,
Brando
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Saturday, October 15, 2016 10:55 AM
All replies
-
User177399542 posted
Hi Please check this: Display sum of columns total in gridview footer
Friday, October 14, 2016 11:08 AM -
User283571144 posted
Hi kiang_yit,
Gridview display total in footerAccording to your description, I suggest you could set gridview's showfooter's value to true, firstly.
Then you could use select method and sum method to get the total result in each column.
More details, you could refer to follow codes and image:
<div> <asp:GridView ID="GrdUsers" runat="server" CssClass="table table-striped table-bordered table-hover" EmptyDataText="No Records Found" DataKeyNames="Description" AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdUsers_PageIndexChanging1" HeaderStyle-HorizontalAlign="Center" GridLines="None" BorderWidth="2px" EditRowStyle-BorderColor="#000000" EmptyDataRowStyle-BorderStyle="Groove" PageSize="10" Width="70%" ShowFooter="true" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA"> <Columns> <asp:TemplateField HeaderText="Area" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "Description")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Total Employee" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="10%"> <ItemTemplate> <label style="color: black; font-weight: bold"><%#DataBinder.Eval(Container.DataItem, "a_1")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Present" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "a_2")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Absent" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="7%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "status")%></label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Percent of employee present(%)" HeaderStyle-BackColor="#0033cc" HeaderStyle-ForeColor="White" ItemStyle-Width="15%"> <ItemTemplate> <label style="color: black; font-weight: 100"><%#DataBinder.Eval(Container.DataItem, "PURPOSE")%></label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" /> </asp:GridView> </div>
Code-behind:
public partial class FooterInGridview : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if ( ! IsPostBack) { FillRequestGrid(); } } protected void FillRequestGrid() { List<HomeAnnouncement> l1 = new List<HomeAnnouncement>(); HomeAnnouncement h1 = new HomeAnnouncement(); h1.a_1 = 2; h1.a_1 = 1; h1.Description = "ENG"; h1.status = 1; h1.PURPOSE = 92.9; HomeAnnouncement h2 = new HomeAnnouncement(); h2.a_1 = 3; h2.a_1 = 4; h2.Description = "PACK"; h2.status = 9; h2.PURPOSE = 91.7; l1.Add(h1); l1.Add(h2);
// show each lines total result: GrdUsers.Columns[0].FooterText = "Total"; GrdUsers.Columns[1].FooterText = l1.Select(x =>x.a_1).Sum().ToString(); GrdUsers.Columns[2].FooterText = l1.Select(x => x.a_2).Sum().ToString(); GrdUsers.Columns[3].FooterText = l1.Select(x => x.status).Sum().ToString(); GrdUsers.Columns[4].FooterText = l1.Select(x => x.PURPOSE).Sum().ToString(); GrdUsers.DataSource = l1; GrdUsers.DataBind(); } protected void GrdUsers_PageIndexChanging1(object sender, GridViewPageEventArgs e) { GrdUsers.PageIndex = e.NewPageIndex; FillRequestGrid(); } } internal class HomeAnnouncement { public string Description { get; set; } public int a_1 { get; set; } public int a_2 { get; set; } public int status { get; set; } public double PURPOSE { get; set; } }Result:
Best Regards,
Brando
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Saturday, October 15, 2016 10:55 AM