corelibraries-devexpress-dot-xtrapivotgrid-dot-pivotcelleventargsbase-3-dot-getfieldvalue-x28-0-system-dot-int32-x29.md
Returns the specified column or row field’s value for the cell, addressed by its zero-based index in the data area.
Namespace : DevExpress.XtraPivotGrid
Assembly : DevExpress.PivotGrid.v25.2.Core.dll
NuGet Packages : DevExpress.PivotGrid.Core, DevExpress.Win.Navigation
public object GetFieldValue(
TField field,
int cellIndex
)
Public Function GetFieldValue(
field As TField,
cellIndex As Integer
) As Object
| Name | Type | Description |
|---|---|---|
| field | TField |
A column or row field, whose value is to be obtained.
| | cellIndex | Int32 |
A zero-based index of a cell in the data area that identifies the field value. Indexes starts from the left edge for column fields, and from the top edge for row fields.
|
| Type | Description |
|---|---|
| Object |
The field value.
|
To get a row field’s value for the current row, pass the e.RowIndex property’s value as the cellIndex parameter. To get a column field’s value, use the e.ColumnIndex property.
The following image shows cell indexes that numerate rows and columns:
This example calculates percentage based on the Beverages row value for each column. The Pivot Grid handles the PivotGridControl.CustomCellValue event to display a calculated percentage value in the cell that belongs to the % of Beverages Sales column. The grand total values are hidden.
private void pivotGridControl1_CustomCellValue(object sender, PivotCellValueEventArgs e) {
// Calculates the 'Percent' field values.
if (e.DataField.Name == "PercentOfBeverages") {
// Hides grand total values.
if (e.RowValueType == PivotGridValueType.GrandTotal) {
e.Value = null;
return;
}
var rowValues = e.GetRowFields().Select(f =>
f == fieldCategoryName ? "Beverages" : e.GetFieldValue(f)).ToArray();
var columnValues = e.GetColumnFields().Select(f =>
f == fieldCategoryName ? "Beverages" : e.GetFieldValue(f)).ToArray();
decimal beveragesValue = Convert.ToDecimal(e.GetCellValue(columnValues, rowValues, e.DataField));
if (beveragesValue == 0)
e.Value = null;
else
e.Value = Convert.ToDecimal(e.Value) / beveragesValue;
}
else return;
}
Private Sub pivotGridControl1_CustomCellValue(ByVal sender As Object, ByVal e As PivotCellValueEventArgs) Handles pivotGridControl1.CustomCellValue
' Calculates the 'Percent' field values.
If e.DataField.Name = "PercentOfBeverages" Then
' Do not display grand total values.
If e.RowValueType = PivotGridValueType.GrandTotal Then
e.Value = Nothing
Return
End If
Dim rowValues = e.GetRowFields().Select(Function(f) If(f Is fieldCategoryName, "Beverages", e.GetFieldValue(f))).ToArray()
Dim columnValues = e.GetColumnFields().Select(Function(f) If(f Is fieldCategoryName, "Beverages", e.GetFieldValue(f))).ToArray()
Dim beveragesValue As Decimal = Convert.ToDecimal(e.GetCellValue(columnValues, rowValues, e.DataField))
If beveragesValue = 0 Then
e.Value = Nothing
Else
e.Value = Convert.ToDecimal(e.Value) / beveragesValue
End If
Else
Return
End If
See Also
XtraPivotGrid.PivotCellEventArgsBase
XtraPivotGrid.PivotCellEventArgsBase
PivotCellEventArgsBase<TField, TData, TCustomTotal> Class