以编程方式将值添加到网格视图页脚
Posted
技术标签:
【中文标题】以编程方式将值添加到网格视图页脚【英文标题】:Programmatically Add Values To Grid View Footer 【发布时间】:2016-04-22 20:36:34 【问题描述】:我有一个显示值的网格视图,我需要对一些值求和并在页脚中显示总和。如何控制总和显示在哪一列?
假设我的网格视图看起来像这样:
ID --- 名称 --- 商店 # --- 销售额 1 鲍勃 123 14 2 乔 456 21 3 迈克 818 10
显然我希望我的总销售额标题显示在
gvwSales.FooterRow.Cells[1].Text = "Total Sales";
gvwSales.FooterRow.Cells[4].Text = SUM(#ofSales);
但此逻辑不会将信息添加到我的页脚。如何使用此逻辑(或任何其他逻辑)来控制将数据添加到网格视图页脚的位置?
编辑 我的 ?与建议的副本不同,因为他们想在最后一列中添加总和,我想在页脚中添加总和。
【问题讨论】:
Displaying Total in Footer of GridView and also Add Sum of columns(row vise) in last Column的可能重复 @SteveWellens - 我可能会错过它,但这显示了如何以编程方式设置页脚文本。我需要知道如何以编程方式将列的总和添加到特定的页脚列。 页脚没有列。 @SteveWellens - 我的?与您建议的副本不同,因为我想在页脚中添加总和,而不是在最后一列中。 示例将总和放在页脚中。由于页脚没有列,因此他/她在页脚中放置了一个标签控件并将总和放在那里。 【参考方案1】:这就是我最终做到的方式。如果需要,我可以提供更多语法,但我认为这将显示我是如何实现这一点的。
protected void gvwSales_RowDataBound(object sender, GridViewRowEventArgs e)
if (e.Row.RowType == DataControlRowType.DataRow)
decimal tmptotalsales = Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "totalsales").ToString());
GrandTotalSales += tmptotalsales;
if (e.Row.RowType == DataControlRowType.Footer)
e.Row.Cells[0].Font.Bold = true;
e.Row.Cells[3].Font.Bold = true;
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
e.Row.Cells[0].Text = "Total Sales";
e.Row.Cells[3].Text = GrandTotalSales.ToString("F");
【讨论】:
以上是关于以编程方式将值添加到网格视图页脚的主要内容,如果未能解决你的问题,请参考以下文章