2

動的列を持つデータソースを持つ RadGrid があります。また、columncreated イベントで次のコードを使用して、データをグループ化し、グループ フッターに列の合計を表示しています。

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 で 2 番目の合計が 25 の場合、2 番目のフッターの合計は 75 と表示されます。カスタム集計または他の方法でこれを行う方法はありますか?

どんな助けでも素晴らしいでしょう。どうも!

4

1 に答える 1

1

累計を表示するための組み込みの機能/フィールド/列がテレリック グリッドにあるとは思いませんが、グリッドの ItemDataBound イベントで計算、保存、およびフッター テンプレート column へのバインドによってこれを実現できます。サンプル コードは次のとおりです。

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();
    }
}

何か不足している場合はお知らせください。

于 2012-04-19T14:01:42.160 に答える