PivotGridControl.EditValueChanged Event

Occurs when the cell value changes and allows you to save the changed value.

Namespace: DevExpress.XtraPivotGrid

Assembly: DevExpress.XtraPivotGrid.v20.1.dll

Declaration

public event EditValueChangedEventHandler EditValueChanged
Public Event EditValueChanged As EditValueChangedEventHandler

Event Data

The EditValueChanged event's data class is EditValueChangedEventArgs. The following properties provide information specific to this event:

Property Description
ColumnCustomTotal Gets the column custom total which displays the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnField Gets the innermost column field which corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnFieldIndex For internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnIndex Gets the visual index of the column that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnValueType Gets the type of column which contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
Data For internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DataField Gets the data field which identifies the column where the processed cell resides. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
Editor Gets the editor that was used to change the processed cell value.
Item For internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowCustomTotal Gets the row custom total which contains the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowField Gets the innermost row field which corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowFieldIndex For internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowIndex Gets the index of the row that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowValueType Gets the type of row which contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SummaryType Gets the summary type of the currently processed value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SummaryValue Gets the summary value currently being processed. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
Value Gets the processed cell's value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.

Remarks

The EditValueChanged event occurs when an end-user changes the cell value with an in-place editor and subsequently closes the editor. Handle the EditValueChanged event to save modified data to the data source.

Use the following properties to identify the edited cell:

Use the EditValueChangedEventArgs.Editor property to access the in-place editor instance.

Examples

This example demonstrates how to edit cells with the in-line cell editor and save the changes to the underlying data.

The Need Verification field is a boolean field displayed with a CheckEdit repository editor. The editor gets a value for display from the PivotGridControl.CustomCellValue event handler. When editing finishes, the PivotGridControl.EditValueChanged event handler calls the e.CreateDrillDownDataSource method to retrieve the underlying records and updates them.

NOTE

The complete sample project How to Edit and Save Cell Values is available in the DevExpress Examples repository.

using DevExpress.XtraPivotGrid;
using System;
using System.Collections.ObjectModel;

namespace HowToEditAndSavePivotCellValues
{
    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        public Collection<MyOrderRow> OrderSourceList { get; set; }
        public Form1()
        {
            InitializeComponent();

            pivotGridControl1.CustomCellValue += PivotGridControl1_CustomCellValue;
            pivotGridControl1.EditValueChanged += PivotGridControl1_EditValueChanged;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            OrderSourceList = DatabaseHelper.CreateData();
            pivotGridControl1.DataSource = OrderSourceList;
            pivotGridControl1.BestFit();
        }

        private void PivotGridControl1_EditValueChanged(object sender, DevExpress.XtraPivotGrid.EditValueChangedEventArgs e)
        {
            ChangeCellValue(e, Convert.ToBoolean(e.Value), Convert.ToBoolean(e.Editor.EditValue));
        }

        private void ChangeCellValue(EditValueChangedEventArgs e, bool oldValue, bool newValue)
        {
            PivotDrillDownDataSource ds = e.CreateDrillDownDataSource();
            for (int i = 0; i < ds.RowCount; i++)
            {
                ds.SetValue(i, e.DataField, newValue);
            }
        }

        private void PivotGridControl1_CustomCellValue(object sender, DevExpress.XtraPivotGrid.PivotCellValueEventArgs e)
        {
            if (e.DataField.Name == "fieldNeedVerification" && e.Value != null) {
                e.Value = (Convert.ToInt32(e.Value) > 0) ? true : false;
            }
        }

    }
}
See Also