0

在我的ASPxGridView,

IPOTEK我用这段代码在页脚中得到了总计;

<TotalSummary>
<dx:ASPxSummaryItem FieldName="IPOTEK" SummaryType="SUM" ShowInGroupFooterColumn="IPOTEK" DisplayFormat="n0" />
</TotalSummary>

IPOTEK当我在组的页脚中分组时,我得到了列的平均值。

<GroupSummary>
 <dx:ASPxSummaryItem FieldName="IPOTEK" SummaryType="AVERAGE" ShowInGroupFooterColumn="IPOTEK" DisplayFormat="n0" />
</GroupSummary>

一切都好。例如,当我分组时,它看起来像这样;(IPOTEK列从109.827开始)

在此处输入图像描述

我想要的是;在 中TotalSummary,只有列的GroupSummary值的总和IPOTEK

现在,对于这个数据增加TotalSummary109.827* 3= 329.481(GroupSummary * 3)

我想要什么,对于这个数据只添加并且唯一GropupSummary的价值TotalSummary

我怎样才能做到这一点?

最好的问候, 索纳

4

1 回答 1

2

好吧,这个任务没有一个简单的解决方案。我看到两种选择:

1)对页脚摘要使用自定义摘要,并在DevExpress.Data.CustomSummaryProcess.Finalize阶段尝试遍历所有组行,获取相应的摘要值并将它们求和。要遍历组行,请使用以下代码:

protected void ASPxGridView1_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e) {
    if(e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Finalize) { 
        ASPxGridView grid = sender as ASPxGridView;
        double total = 0;
        for(int i = 0; i < grid.VisibleRowCount; i++) 
            if(grid.IsGroupRow(i)) 
                total += Convert.ToDouble(grid.GetGroupSummaryValue(i, grid.GroupSummary[0]));
        e.TotalValue = total;
        e.TotalValueReady = true;
    }
}

2) 在列的FooterTemplate 容器中使用标签并处理GridView 的PreRender 和BeforeGetCallbackResult来设置这个标签值。该值应使用上面的代码计算。

我希望这有帮助。

更新

为什么使用此代码:

if (grid.IsGroupRow(7))

7 是一个可见的RowIndex,你应该在那里传递 i 参数

于 2011-05-05T13:34:16.243 回答