Posted 27 April 2026, 9:22 am EST
- Updated 27 April 2026, 10:28 am EST
I try, and I get the footer but
- how to change sytle ??
- adjust gridview to the footer
My code now:
<Columns>
<cc1:C1TemplateField SortExpression="MonthNumber">
<ItemTemplate>
<%# Eval("MonthNumber") %>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblMonthFooterTotal" runat="server" Text="TOTAL" />
<br />
<asp:Label ID="lblMonthFooterAverage" runat="server" Text="PROM DIARIO" />
</FooterTemplate>
<ItemStyle CssClass="GridText" />
</cc1:C1TemplateField>
<cc1:C1TemplateField HeaderText="Amount" SortExpression="Amount">
<ItemTemplate>
<%# Eval("Amount", "{0:C}") %>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblAmountFooterTotal" runat="server" />
<br />
<asp:Label ID="lblAmountFooterAverage" runat="server" />
</FooterTemplate>
<ItemStyle CssClass="GridNumber" />
</cc1:C1TemplateField>
<cc1:C1TemplateField HeaderText="SIVAAmount" SortExpression="SIVAAmount">
<ItemTemplate>
<%# Eval("SIVAAmount", "{0:C}") %>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblSivaFooterTotal" runat="server" />
<br />
<asp:Label ID="lblSivaFooterAverage" runat="server" />
</FooterTemplate>
<ItemStyle CssClass="GridNumber" />
</cc1:C1TemplateField>
<cc1:C1TemplateField HeaderText="IVAAmount" SortExpression="IVAAmount">
<ItemTemplate>
<%# Eval("IVAAmount", "{0:C}") %>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblIvaFooterTotal" runat="server" />
<br />
<asp:Label ID="lblIvaFooterAverage" runat="server" />
</FooterTemplate>
<ItemStyle CssClass="GridNumber" />
</cc1:C1TemplateField>
<cc1:C1TemplateField HeaderText="TotalAmount" SortExpression="TotalAmount">
<ItemTemplate>
<%# Eval("TotalAmount", "{0:C}") %>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblTotalFooterTotal" runat="server" />
<br />
<asp:Label ID="lblTotalFooterAverage" runat="server" />
</FooterTemplate>
<ItemStyle CssClass="GridNumber" />
</cc1:C1TemplateField>
</Columns>
and c#
private void ConfigureGridViewColumns()
{
#region Months Available
int monthsUsed = (from myRow in _dataSources.Tables[0].AsEnumerable()
where myRow.Field<decimal>("TotalAmount") > 0
select myRow).Count();
Session["monthsAvailable"] = monthsUsed;
#endregion
SetFooterLabelText("lblMonthFooterTotal", "TOTAL");
SetFooterLabelText("lblMonthFooterAverage", "PROM DIARIO");
SetAmountFooter("Amount", "lblAmountFooterTotal", "lblAmountFooterAverage", monthsUsed);
SetAmountFooter("SIVAAmount", "lblSivaFooterTotal", "lblSivaFooterAverage", monthsUsed);
SetAmountFooter("IVAAmount", "lblIvaFooterTotal", "lblIvaFooterAverage", monthsUsed);
SetAmountFooter("TotalAmount", "lblTotalFooterTotal", "lblTotalFooterAverage", monthsUsed);
}
private void SetAmountFooter(string columnName, string totalLabelId, string averageLabelId, int monthsUsed)
{
if (_dataSources == null || _dataSources.Tables.Count == 0)
{
return;
}
var table = _dataSources.Tables[0];
decimal total = 0;
foreach (DataRow row in table.Rows)
{
total += row.Field<decimal>(columnName);
}
var average = monthsUsed > 0 ? total / (monthsUsed * 30) : 0;
SetFooterLabelText(totalLabelId, total.ToString("C"));
SetFooterLabelText(averageLabelId, average.ToString("C"));
}
private void SetFooterLabelText(string controlId, string text)
{
if (C1GridView1.FooterRow == null)
{
return;
}
var label = C1GridView1.FooterRow.FindControl(controlId) as Label;
if (label == null)
{
return;
}
label.Text = Server.HtmlEncode(text ?? string.Empty);
}
using C1TemplateField instead of C1BoundField
using ItemTemplate and
<%# Eval("Amount", "{0:C}") %>
, format 0:C
using FooterTemplate
<FooterTemplate>
<asp:Label ID="lblAmountFooterTotal" runat="server" />
<br />
<asp:Label ID="lblAmountFooterAverage" runat="server" />
</FooterTemplate>
any suggestions for style, adjust, and good patterns&practices for my code for footer ?
thanks all