PivotGridControl.CustomCellEditForEditing Event
Allows you to assign a custom editor to a cell for in-place editing, and override the default cell editor, which is used in both display and edit modes, by default.
Namespace: DevExpress.XtraPivotGrid
Assembly: DevExpress.XtraPivotGrid.v19.1.dll
Declaration
Event Data
The CustomCellEditForEditing event's data class is PivotCustomCellEditEventArgs. 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>. |
Item | For internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>. |
RepositoryItem | Gets or sets the in-place editor for the current cell. |
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. |
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 which 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 which 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 which 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
You can assign an in-place editor to a cell via the PivotGridField.FieldEdit property, or to an individual cell via the PivotGridControl.CustomCellEdit event. This editor will be used to represent a cell’s contents in display mode (when the cell isn’t currently edited), and by default, in edit mode. If you need to provide different editors to represent a cell’s contents differently in display and edit modes, handle the CustomCellEditForEditing event.
To assign an editor to a cell for in-place editing while handling the CustomCellEditForEditing event, assign a corresponding repository item to the event’s RepositoryItem parameter. Note that the repository item must be added to the control’s DevExpress.XtraPivotGrid.PivotGridControl.RepositoryItems collection.
Example
The following code shows how to handle the PivotGridControl.CustomCellEditForEditing
event to override the cell editor used for the in-place editing.
In the example, the RepositoryItemProgressBar in-place editor is created to represent values of the “Quantity %” field. In the edit mode, this repository item is changed to RepositoryItemTextEdit:
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-override-the-cell-editor-used-for-the-in-place-editing-t515806
using System;
using System.Windows.Forms;
using DevExpress.Data.PivotGrid;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraPivotGrid;
namespace PivotGridControl_CustomCellEdit {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
// Creates new repository items.
RepositoryItemTextEdit riTextEdit = new RepositoryItemTextEdit();
RepositoryItemProgressBar riProgressBar = new RepositoryItemProgressBar();
private void Form1_Load(object sender, EventArgs e) {
this.salesPersonTableAdapter.Fill(this.nwindDataSet.SalesPerson);
// Specifies the type of data field and format settings.
fieldQuantityPercent.SummaryDisplayType = PivotSummaryDisplayType.PercentOfColumn;
fieldQuantityPercent.CellFormat.FormatType = DevExpress.Utils.FormatType.Custom;
fieldQuantityPercent.CellFormat.FormatString = "{0}%";
// Initializes cell editors for this Pivot Grid control.
pivotGridControl1.RepositoryItems.AddRange(new RepositoryItem[] { riTextEdit, riProgressBar });
}
void pivotGridControl1_CustomCellEdit(object sender, PivotCustomCellEditEventArgs e) {
// Specifies a cell editor which is used in both display and edit modes.
if (e.DataField == fieldQuantityPercent & e.RowValueType == PivotGridValueType.Value)
e.RepositoryItem = riProgressBar;
}
void pivotGridControl1_CustomCellEditForEditing(object sender, PivotCustomCellEditEventArgs e) {
// Overrides the cell editor for the edit mode.
if (e.DataField == fieldQuantityPercent & e.RowValueType == PivotGridValueType.Value)
e.RepositoryItem = riTextEdit;
}
private void pivotGridControl1_CustomCellValue(object sender, PivotCellValueEventArgs e) {
if (e.DataField == fieldQuantityPercent)
e.Value = Math.Round(Convert.ToDecimal(e.Value) * 100, 2);
}
}
}