[Expand]General Information
[Expand]WinForms Controls
[Collapse]ASP.NET Controls and MVC Extensions
 [Expand]Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]ASP.NET WebForms Controls
 [Expand]ASP.NET MVC Extensions
 [Expand]Localization
 [Expand]Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Data.Linq
  [Expand]DevExpress.Web
  [Expand]DevExpress.Web.ASPxGauges
  [Expand]DevExpress.Web.ASPxGauges.Base
  [Expand]DevExpress.Web.ASPxGauges.Scripts
  [Expand]DevExpress.Web.ASPxHtmlEditor
  [Expand]DevExpress.Web.ASPxHtmlEditor.Localization
  [Expand]DevExpress.Web.ASPxHtmlEditor.Scripts
  [Collapse]DevExpress.Web.ASPxPivotGrid
   [Expand]ASPxPivotCustomizationControl Class
   [Collapse]ASPxPivotGrid Class
     ASPxPivotGrid Members
     ASPxPivotGrid Constructor
    [Expand]ASPxPivotGrid Properties
    [Collapse]ASPxPivotGrid Events
      AddPopupMenuItem Event
      AfterPerformCallback Event
      BeforeGetCallbackResult Event
      BeforeLoadLayout Event
      BeforePerformDataSelect Event
      BeginRefresh Event
      ClientLayout Event
      ControlHierarchyCreated Event
      CustomCallback Event
      CustomCellDisplayText Event
      CustomCellStyle Event
      CustomCellValue Event
      CustomChartDataSourceData Event
      CustomChartDataSourceRows Event
      CustomCustomizationFormSort Event
      CustomFieldSort Event
      CustomFieldValueCells Event
      CustomFilterExpressionDisplayText Event
      CustomFilterPopupItems Event
      CustomGroupInterval Event
      CustomJsProperties Event
      CustomLoadCallbackState Event
      CustomSaveCallbackState Event
      CustomServerModeSort Event
      CustomSummary Event
      CustomUnboundFieldData Event
      DataAreaPopupCreated Event
      DataSourceChanged Event
      EndRefresh Event
      FieldAreaChanged Event
      FieldAreaChanging Event
      FieldAreaIndexChanged Event
      FieldExpandedInFieldGroupChanged Event
      FieldFilterChanged Event
      FieldFilterChanging Event
      FieldPropertyChanged Event
      FieldUnboundExpressionChanged Event
      FieldValueCollapsed Event
      FieldValueCollapsing Event
      FieldValueDisplayText Event
      FieldValueExpanded Event
      FieldValueExpanding Event
      FieldValueNotExpanded Event
      FieldVisibleChanged Event
      FilterControlCustomValueDisplayText Event
      FilterControlOperationVisibility Event
      FilterControlParseValue Event
      GridLayout Event
      GroupFilterChanged Event
      HtmlCellPrepared Event
      HtmlFieldValuePrepared Event
      LayoutUpgrade Event
      OLAPException Event
      OLAPQueryTimeout Event
      PageIndexChanged Event
      PopupMenuCreated Event
      PrefilterCriteriaChanged Event
      QueryException Event
    [Expand]ASPxPivotGrid Methods
   [Expand]ASPxPivotGridExporter Class
   [Expand]ASPxPivotGridPager Class
   [Expand]ASPxPivotGridPopupMenu Class
   [Expand]CustomCustomizationFormSortEventArgs Class
   [Expand]CustomFieldDataEventArgs Class
    CustomFieldDataEventHandler Delegate
   [Expand]CustomizePivotCellEventArgs Class
    CustomizePivotCellEventHandler Delegate
   [Expand]CustomServerModeSortEventArgs Class
   [Expand]FieldValueCell Class
    MenuItemEnum Enumeration
    PagerAlign Enumeration
   [Expand]PivotAddPopupMenuItemEventArgs Class
    PivotAddPopupMenuItemEventHandler Delegate
   [Expand]PivotAreaChangingEventArgs Class
    PivotAreaChangingEventHandler Delegate
   [Expand]PivotAreaStyle Class
   [Expand]PivotCellBaseEventArgs Class
   [Expand]PivotCellDisplayTextEventArgs Class
    PivotCellDisplayTextEventHandler Delegate
   [Expand]PivotCellStyle Class
   [Expand]PivotCellValueEventArgs Class
   [Expand]PivotChartDataSourceRow Class
    PivotCollapsedStateStoreMode Enumeration
    PivotCustomCallbackEventHandler Delegate
   [Expand]PivotCustomCellStyleEventArgs Class
    PivotCustomCellStyleEventHandler Delegate
   [Expand]PivotCustomChartDataSourceDataEventArgs Class
    PivotCustomChartDataSourceDataEventHandler Delegate
   [Expand]PivotCustomChartDataSourceRowsEventArgs Class
    PivotCustomChartDataSourceRowsEventHandler Delegate
   [Expand]PivotCustomFieldValueCellsEventArgs Class
   [Expand]PivotCustomFilterPopupItemsEventArgs Class
   [Expand]PivotCustomGroupIntervalEventArgs Class
   [Expand]PivotCustomizationFormImages Class
   [Expand]PivotDataAreaPopupCreatedEventArgs Class
    PivotDataHeadersDisplayMode Enumeration
   [Expand]PivotFieldDisplayTextEventArgs Class
    PivotFieldDisplayTextEventHandler Delegate
   [Expand]PivotFieldEventArgs Class
    PivotFieldEventHandler Delegate
   [Expand]PivotFieldFilterChangingEventArgs Class
    PivotFieldFilterChangingEventHandler Delegate
   [Expand]PivotFieldPropertyChangedEventArgs Class
    PivotFieldPropertyChangedEventHandler Delegate
   [Expand]PivotFieldStateChangedCancelEventArgs Class
    PivotFieldStateChangedCancelEventHandler Delegate
   [Expand]PivotFieldStateChangedEventArgs Class
    PivotFieldStateChangedEventHandler Delegate
   [Expand]PivotFieldValueEventArgs Class
    PivotFieldValueEventHandler Delegate
   [Expand]PivotFieldValueStyle Class
   [Expand]PivotFilterButtonPanelStyle Class
   [Expand]PivotFilterButtonStyle Class
   [Expand]PivotFilterItemStyle Class
   [Expand]PivotFilterStyle Class
   [Expand]PivotGridCallbackStateEventArgs Class
    PivotGridCallbackStateEventHandler Delegate
   [Expand]PivotGridCellTemplateContainer Class
   [Expand]PivotGridCellTemplateItem Class
   [Expand]PivotGridClientSideEvents Class
   [Expand]PivotGridCustomCallbackEventArgs Class
   [Expand]PivotGridCustomFieldSortEventArgs Class
    PivotGridCustomFieldSortEventHandler Delegate
    PivotGridCustomGroupIntervalEventHandler Delegate
   [Expand]PivotGridCustomSummaryEventArgs Class
    PivotGridCustomSummaryEventHandler Delegate
   [Expand]PivotGridCustomTotal Class
   [Expand]PivotGridCustomTotalCollection Class
   [Expand]PivotGridEmptyAreaTemplateContainer Class
   [Expand]PivotGridField Class
   [Expand]PivotGridFieldCollection Class
   [Expand]PivotGridFieldValueTemplateContainer Class
   [Expand]PivotGridFieldValueTemplateItem Class
   [Expand]PivotGridHeaderTemplateContainer Class
   [Expand]PivotGridImageProperties Class
   [Expand]PivotGridImages Class
   [Expand]PivotGridPagerStyles Class
    PivotGridPopupMenuType Enumeration
    PivotGridResetOptions Enumeration
   [Expand]PivotGridStyles Class
   [Expand]PivotGridWebFieldOptions Class
   [Expand]PivotGridWebGroup Class
   [Expand]PivotGridWebGroupCollection Class
   [Expand]PivotGridWebOptionsBehavior Class
   [Expand]PivotGridWebOptionsChartDataSource Class
   [Expand]PivotGridWebOptionsCustomization Class
   [Expand]PivotGridWebOptionsData Class
   [Expand]PivotGridWebOptionsDataField Class
   [Expand]PivotGridWebOptionsFilter Class
   [Expand]PivotGridWebOptionsLayout Class
   [Expand]PivotGridWebOptionsLoadingPanel Class
   [Expand]PivotGridWebOptionsPager Class
   [Expand]PivotGridWebOptionsView Class
   [Expand]PivotGroupEventArgs Class
    PivotGroupEventHandler Delegate
   [Expand]PivotHeaderStyle Class
   [Expand]PivotHtmlCellPreparedEventArgs Class
    PivotHtmlCellPreparedEventHandler Delegate
   [Expand]PivotHtmlFieldValuePreparedEventArgs Class
    PivotHtmlFieldValuePreparedEventHandler Delegate
   [Expand]PivotOlapExceptionEventArgs Class
    PivotOlapExceptionEventHandler Delegate
   [Expand]PivotPopupMenuCreatedEventArgs Class
   [Expand]PivotQueryExceptionEventArgs Class
    PivotQueryExceptionEventHandler Delegate
    PivotScrollingMode Enumeration
   [Expand]PivotXlsExportOptions Class
   [Expand]PivotXlsxExportOptions Class
   [Expand]WebCustomExportCellEventArgs Class
   [Expand]WebCustomExportFieldValueEventArgs Class
   [Expand]WebCustomExportHeaderEventArgs Class
   [Expand]WebPivotGridOptionsPrint Class
  [Expand]DevExpress.Web.ASPxPivotGrid.Data
  [Expand]DevExpress.Web.ASPxPivotGrid.HtmlControls
  [Expand]DevExpress.Web.ASPxPivotGrid.Scripts
  [Expand]DevExpress.Web.ASPxRichEdit
  [Expand]DevExpress.Web.ASPxRichEdit.Localization
  [Expand]DevExpress.Web.ASPxRichEdit.Scripts
  [Expand]DevExpress.Web.ASPxScheduler
  [Expand]DevExpress.Web.ASPxScheduler.Commands
  [Expand]DevExpress.Web.ASPxScheduler.Commands.Dialogs
  [Expand]DevExpress.Web.ASPxScheduler.Controls
  [Expand]DevExpress.Web.ASPxScheduler.Dialogs
  [Expand]DevExpress.Web.ASPxScheduler.Drawing
  [Expand]DevExpress.Web.ASPxScheduler.Localization
  [Expand]DevExpress.Web.ASPxScheduler.Reporting
  [Expand]DevExpress.Web.ASPxScheduler.Scripts
  [Expand]DevExpress.Web.ASPxSpellChecker
  [Expand]DevExpress.Web.ASPxSpellChecker.Localization
  [Expand]DevExpress.Web.ASPxSpellChecker.Scripts
  [Expand]DevExpress.Web.ASPxSpreadsheet
  [Expand]DevExpress.Web.ASPxSpreadsheet.Localization
  [Expand]DevExpress.Web.ASPxSpreadsheet.Scripts
  [Expand]DevExpress.Web.ASPxTreeList
  [Expand]DevExpress.Web.ASPxTreeList.Internal
  [Expand]DevExpress.Web.ASPxTreeList.Localization
  [Expand]DevExpress.Web.ASPxTreeList.Scripts
  [Expand]DevExpress.Web.Captcha
  [Expand]DevExpress.Web.Data
  [Expand]DevExpress.Web.Internal
  [Expand]DevExpress.Web.Localization
  [Expand]DevExpress.Web.Mvc
  [Expand]DevExpress.Web.Mvc.BinderSettings
  [Expand]DevExpress.Web.Mvc.Controllers
  [Expand]DevExpress.Web.MVC.Scripts
  [Expand]DevExpress.Web.Mvc.UI
  [Expand]DevExpress.Web.Office
  [Expand]DevExpress.Web.Office.Internal
  [Expand]DevExpress.Web.Rendering
  [Expand]DevExpress.Web.Scripts
  [Expand]DevExpress.XtraCharts.Web
  [Expand]DevExpress.XtraCharts.Web.Designer
  [Expand]DevExpress.XtraCharts.Web.Scripts
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

ASPxPivotGrid.CustomFieldSort Event

Provides the ability to sort data using custom rules.

Namespace:DevExpress.Web.ASPxPivotGrid
Assembly:DevExpress.Web.ASPxPivotGrid.v18.1.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type PivotGridCustomFieldSortEventArgs containing data related to this event.

The following PivotGridCustomFieldSortEventArgs properties provide information specific to this event.
Property Description
Field Gets the field whose values are being compared.
Handled Gets or sets whether a comparison operation is being handled and therefore no default processing is required.
ListSourceRowIndex1 Gets the index in the data source of the first of the two rows being compared.
ListSourceRowIndex2 Gets the index in the data source of the second of the two rows being compared.
Result Gets or sets the result of a custom comparison.
SortLocation Gets a target UI element to whose values sorting is applied.
SortOrder Gets the sort order applied to the field.
Value1 Gets the first value being compared.
Value2 Gets the second value being compared.

Expanded Remarks

Handle the CustomFieldSort event to provide a custom sorting algorithm for a specific field. Note that the DevExpress.XtraPivotGrid.PivotGridFieldBase.SortMode property of this field should be set to DevExpress.XtraPivotGrid.PivotSortMode.Custom to apply custom sorting. Otherwise, the CustomFieldSort event will not be raised.

The CustomFieldSort event fires for pairs of rows in the underlying data source, before data is grouped according to the layout of column and row fields. The PivotGridCustomFieldSortEventArgs.ListSourceRowIndex1 and PivotGridCustomFieldSortEventArgs.ListSourceRowIndex2 parameters identify the indexes of the rows. The field being processed is specified by the PivotGridCustomFieldSortEventArgs.Field parameter. The field's values in these rows are specified by the PivotGridCustomFieldSortEventArgs.Value1 and PivotGridCustomFieldSortEventArgs.Value2 parameters.

In the event handler, you should compare these two values and assign the result to the PivotGridCustomFieldSortEventArgs.Result property as follows:

  • set Result to -1, if the first row should be positioned above the second row, when sorting data in ascending order. When data is sorted in descending order, the first row will be positioned below the second row.
  • set Result to 1, if the first row should be positioned below the second row, when sorting data in ascending order. When data is sorted in descending order, the first row will be positioned above the second row.
  • set Result to 0 to indicate that the rows are equal. In this case, the compared rows will be grouped into one field value.

If your comparison logic requires additional data from the underlying data source, use the PivotGridCustomFieldSortEventArgs.GetListSourceColumnValue method. This method allows you to obtain values from the data source by a column name and row index.

The PivotGridCustomFieldSortEventArgs.Handled property must be set to true, if the current comparison operation was handled. You can leave this parameter set to false, to invoke the default comparison mechanism after your event handler has finished. In the latter instance, the result of a custom comparison operation is ignored.

The CustomFieldSort event also fires to sort unique filter values in the Filter Window. Each filter value might correspond to multiple rows in the underlying data source. So, the event's ListSourceRowIndex1 and ListSourceRowIndex2 parameters cannot be used to identify underlying rows. They are set to -1, when comparing filter values in the Filter Window.

Note

Custom sorting is not supported in OLAP or server mode. To sort data in OLAP and server mode using custom algorithms, handle the CustomServerModeSort event.

Expanded Example

This example demonstrates how to implement a custom sorting algorithm by handling the CustomFieldSort event.

The image shows the result:

Expanded See Also

Is this topic helpful?​​​​​​​