Skip to main content

PivotCustomChartDataSourceDataEventHandler Delegate

A method that will handle the ASPxPivotGrid.CustomChartDataSourceData event.

Namespace: DevExpress.Web.ASPxPivotGrid

Assembly: DevExpress.Web.ASPxPivotGrid.v23.2.dll

NuGet Package: DevExpress.Web

Declaration

public delegate void PivotCustomChartDataSourceDataEventHandler(
    object sender,
    PivotCustomChartDataSourceDataEventArgs e
);

Parameters

Name Type Description
sender Object

The event source. This parameter identifies the pivot grid which raised the event.

e PivotCustomChartDataSourceDataEventArgs

A PivotCustomChartDataSourceDataEventArgs object that contains event data.

Example

The following example demonstrates how to add custom text to data prepared by the ASPxPivotGrid, to display it in a WebChartControl.

For this, it is necessary to handle the ASPxPivotGrid.CustomChartDataSourceData event. In this event handler, you can determine the item type via the PivotCustomChartDataSourceDataEventArgs.ItemType property and change the PivotCustomChartDataSourceDataEventArgs.Value according to your custom requirements.

View Example

private void pivotGridControl1_CustomChartDataSourceData(object sender, 
PivotCustomChartDataSourceDataEventArgs e) {
    if(e.ItemType == PivotChartItemType.RowItem) {
        if(e.FieldValueInfo.Field == fieldCategoryName) {
            e.Value = CategoryEncodeTable[e.FieldValueInfo.Value.ToString()];
        } else if(e.FieldValueInfo.Field == fieldProductName) {
            string product =  
                ProductEncodeTable[e.FieldValueInfo.Value.ToString()];
            string category = 
            CategoryEncodeTable[e.FieldValueInfo.GetHigherLevelFieldValue(fieldCategoryName).ToString()];
            e.Value = product + '[' + category + ']';
        }
    }
    if(e.ItemType == PivotChartItemType.ColumnItem) {
        if(e.FieldValueInfo.ValueType == PivotGridValueType.GrandTotal) {
            e.Value = "Total Sales";
        }
    }
    if(e.ItemType == PivotChartItemType.CellItem) {
        e.Value = Math.Round(Convert.ToDecimal(e.CellInfo.Value), 0);
    }
}
See Also