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合計のみ。GroupSummaryIPOTEK

さて、このデータの付加TotalSummary価値109.827* 3= 329.481(GroupSummary * 3)

私が欲しいのは、このデータがに唯一のGropupSummary価値を追加するためTotalSummaryです。

どうやってやるの?

よろしく、ソナー

4

1 に答える 1

2

さて、このタスクに対する直接的な解決策はありません。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 は visibleRowIndex です。そこに i パラメータを渡す必要があります。

于 2011-05-05T13:34:16.243 に答える