PivotGridControl.EditValueChanged Event
Occurs when the cell value changes and allows you to save the changed value.
Namespace: DevExpress.XtraPivotGrid
Assembly: DevExpress.XtraPivotGrid.v24.1.dll
NuGet Package: DevExpress.Win.PivotGrid
Declaration
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>. |
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. |
RowCustomTotal | Gets the row custom total which contains the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
RowField | Gets the innermost row field that 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 that 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>. |
The event data class exposes the following methods:
Method | Description |
---|---|
CreateDrillDownDataSource() | Returns data records used to calculate a summary value for the cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateDrillDownDataSource(List<String>) | Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateDrillDownDataSource(Int32, List<String>) | Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateDrillDownDataSource(Int32) | Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateOLAPDrillDownDataSource(List<String>) | Obsolete. In OLAP mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateOLAPDrillDownDataSource(Int32, List<String>) | Obsolete. In OLAP mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateServerModeDrillDownDataSource(List<String>) | Obsolete. In server mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateServerModeDrillDownDataSource(Int32, List<String>) | Obsolete. In server mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
CreateSummaryDataSource() | Returns a summary data source. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetCellValue(TField) | Returns a cell value calculated against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetCellValue(Int32, Int32) | Returns a cell value by the column and row indexes. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetCellValue(Object[], Object[], TField) | Returns a cell value calculated for the specified column and row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetColumnFields() | Returns an array of column fields that correspond to the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetColumnGrandTotal(TField) | Returns a Column Grand Total value calculated for the current row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetColumnGrandTotal(Object[], TField) | Returns a Column Grand Total value calculated for the specified row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetFieldValue(TField, Int32) | Returns the specified column or row field’s value for the cell, addressed by its zero-based index in the data area. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetFieldValue(TField) | Returns the value of the specified column or row field that identifies the column/row in which the processed cell resides. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetGrandTotal(TField) | Gets the Grand Total value for the specified field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetNextColumnCellValue(TField) | Returns the value of the cell in the same row but in the next column. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetNextRowCellValue(TField) | Returns the value of the cell in the next row. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetPrevColumnCellValue(TField) | Returns the value of the cell in the same row but in the previous column. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetPrevRowCellValue(TField) | Returns the value of the cell in the previous row. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetRowFields() | Returns an array of the row fields that correspond to the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetRowGrandTotal(TField) | Returns a Row Grand Total value calculated for the current column field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
GetRowGrandTotal(Object[], TField) | Returns a Row Grand Total value calculated for the specified column field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
IsFieldValueExpanded(TField) | Indicates whether the specified field’s value that represents the row or column header of the processed cell is expanded. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
IsFieldValueRetrievable(TField) | Gets whether the value of the specified column or row field can be retrieved for the current cell by the PivotCellEventArgsBase<TField, TData, TCustomTotal>.GetFieldValue method. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
IsOthersFieldValue(TField) | Indicates whether the processed data cell resides within the “Others” row/column when the Top X Value feature is enabled. 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:
- The e.ColumnField, e.RowField and e.DataField properties return column, row and data fields related to the current cell.
- The e.ColumnIndex and e.RowIndex properties return the zero-based index of the cell’s column or row. Note that the index is calculated based on visible rows or columns, thus collapsed and expanded rows/columns have different indexes.
- The e.ColumnValueType and e.RowValueType properties return column adn row types.
- If the current cell is a custom total cell, the e.ColumnCustomTotal and e.RowCustomTotal properties return column and row custom totals. Otherwise, these properties return null (Nothing in Visual Basic).
Use the EditValueChangedEventArgs.Editor property to access the in-place editor instance.
Example
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.
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;
}
}
}
}
Related GitHub Examples
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the EditValueChanged event.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.