protected void ASPxPivotGrid1_CustomCellValue(object sender, DevExpress.Web.ASPxPivotGrid.PivotCellValueEventArgs e)
    {
        if (ReferenceEquals(e.RowCustomTotal, null))
        {
            return;
        }

        if (e.RowCustomTotal.SummaryType == DevExpress.Data.PivotGrid.PivotSummaryType.Sum)
        {
            PivotSummaryDataSource ds = e.CreateSummaryDataSource();
            decimal customSum         = 0;
            for (int i = 0; i < ds.RowCount; i++)
            {
                customSum += Convert.ToDecimal(ds.GetValue(i, e.DataField));
            }
            e.Value = customSum;
        }
        else if (e.RowCustomTotal.SummaryType == DevExpress.Data.PivotGrid.PivotSummaryType.Average)
        {
            PivotSummaryDataSource ds = e.CreateSummaryDataSource();
            if (ds.RowCount == 0)
            {
                return;
            }
            decimal customAverage = 0;
            for (int i = 0; i < ds.RowCount; i++)
            {
                customAverage += Convert.ToDecimal(ds.GetValue(i, e.DataField));
            }
            e.Value = customAverage / ds.RowCount;
        }
    }
 protected void ASPxPivotGrid1_CustomCellValue(object sender,
                                               DevExpress.Web.ASPxPivotGrid.PivotCellValueEventArgs e)
 {
     // Calculates 'Percent' field values.
     if (e.DataField.ID == "fieldPercent")
     {
         object[] columnPath = GetValues(e, true,
                                         ASPxPivotGrid1.Fields.GetFieldByName("fieldCategoryName"), "Beverages");
         object[] rowPath = GetValues(e, false,
                                      ASPxPivotGrid1.Fields.GetFieldByName("fieldCategoryName"), "Beverages");
         decimal beveragesValue =
             Convert.ToDecimal(e.GetCellValue(columnPath, rowPath, e.DataField));
         if (beveragesValue == 0)
         {
             e.Value = null;
         }
         else
         {
             e.Value = Convert.ToDecimal(e.Value) / beveragesValue;
         }
     }
     else
     {
         return;
     }
 }
 object[] GetValues(DevExpress.Web.ASPxPivotGrid.PivotCellValueEventArgs e, bool isColumn,
                    PivotGridFieldBase targetField, object targetValue)
 {
     DevExpress.Web.ASPxPivotGrid.PivotGridField[] fields =
         isColumn ? e.GetColumnFields() : e.GetRowFields();
     object[] targetPath = new object[fields.Length];
     for (int i = 0; i < targetPath.Length; i++)
     {
         if (object.ReferenceEquals(fields[i], targetField))
         {
             targetPath[i] = targetValue;
         }
         else
         {
             targetPath[i] = e.GetFieldValue(fields[i]);
         }
     }
     return(targetPath);
 }
 protected void OnCustomCellValue(object sender, PivotCellValueEventArgs e)
 {
     //var value = e.Value;
     if (e.ColumnValueType == PivotGridValueType.Value)
     {
         //var value = (double?) e.Value;
     }
 }