以编程方式将值添加到网格视图页脚

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");
    

【讨论】:

以上是关于以编程方式将值添加到网格视图页脚的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将行添加到带有背景色的网格[重复]

尝试以编程方式使用嵌套的 Stack 视图制作网格

Android 编程:如何以网格方式以编程方式创建各种视图类型

以编程方式创建网格视图

以编程方式删除数据网格视图中的行标题

网格视图组合框