2012-04-19 94 views
2

我有一个具有动态列的数据源一radgrid控件。我也做分组上的数据,在columncreated事件使用此代码在组页脚中的列显示的汇总:Telerik的radgrid控件和运行总计与动态列

if (e.Column.ColumnType != "GridExpandColumn" & e.Column.ColumnType != "GridGroupSplitterColumn") 
    { 
     if (e.Column.UniqueName != "Item" && e.Column.UniqueName != "Width" && e.Column.UniqueName != "Type" && e.Column.UniqueName != "Balance") 
     { 
      ((Telerik.Web.UI.GridBoundColumn)e.Column).Groupable = true; 
      ((Telerik.Web.UI.GridBoundColumn)e.Column).DataFormatString = "{0:N0}"; 
      ((Telerik.Web.UI.GridBoundColumn)e.Column).Aggregate = Telerik.Web.UI.GridAggregateFunction.Sum; 
     } 
    } 

我的客户希望分组页脚合计为总运行。即如果第一个总数是100,第二个总数是25,那么第二个总数应该显示75.有没有办法通过自定义聚合或任何其他方式做到这一点?

任何帮助将是伟大的。谢谢!

回答

1

我不认为有任何inbuild functionlity /场/在Telerik的格栏,显示运行总和,但是你可以通过计算,存储和其绑定到页脚模板列网格的ItemDataBound事件做到这一点,以下是示例代码:

protected void RadGrid1_ItemDataBound1(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     GridDataItem dataItem = e.Item as GridDataItem; 
     string payment = dataItem["PaymentAmount"].Text; 
     decimal fieldValue = decimal.Parse(payment); 
     total += fieldValue; 
     dataItem["Balance"].Text = total.ToString(); 
    } 

    if (e.Item is GridFooterItem) 
    { 
     GridFooterItem footerItem = e.Item as GridFooterItem; 
     footerItem["PaymentAmount"].Text = "total: " + total.ToString(); 
    } 
} 

让我知道如果我失去了一些东西。

+0

我正在使用动态列,所以有1到n列。我能够使用上面的代码获得列表总页数,但不知道如何在有1到n列的可能性时如何完成运行表,所以我不能使用它们的列名。 – Juan 2012-04-20 13:52:56