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