Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Collapse]WinForms Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Expand]Common Features
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.DocumentView.Controls
  [Expand]DevExpress.LookAndFeel
  [Expand]DevExpress.LookAndFeel.Helpers
  [Expand]DevExpress.Skins
  [Expand]DevExpress.Snap
  [Expand]DevExpress.Snap.API.Native
  [Expand]DevExpress.Snap.Core
  [Expand]DevExpress.Snap.Core.API
  [Expand]DevExpress.Snap.Core.Fields
  [Expand]DevExpress.Snap.Core.Forms
  [Expand]DevExpress.Snap.Core.Options
  [Expand]DevExpress.Snap.Core.Services
  [Expand]DevExpress.Snap.Extensions
  [Expand]DevExpress.Snap.Extensions.Localization
  [Expand]DevExpress.Snap.Extensions.UI
  [Expand]DevExpress.Snap.Localization
  [Expand]DevExpress.Snap.Options
  [Expand]DevExpress.Snap.Services
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Animation
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Drawing
  [Expand]DevExpress.Utils.Menu
  [Expand]DevExpress.Utils.Taskbar
  [Expand]DevExpress.Utils.Taskbar.Core
  [Expand]DevExpress.Utils.UI.Localization
  [Expand]DevExpress.Utils.VisualEffects
  [Expand]DevExpress.Utils.Win
  [Expand]DevExpress.XtraBars
  [Expand]DevExpress.XtraBars.Alerter
  [Expand]DevExpress.XtraBars.Docking
  [Expand]DevExpress.XtraBars.Docking2010
  [Expand]DevExpress.XtraBars.Docking2010.Customization
  [Expand]DevExpress.XtraBars.Docking2010.Views
  [Expand]DevExpress.XtraBars.Docking2010.Views.NativeMdi
  [Expand]DevExpress.XtraBars.Docking2010.Views.Tabbed
  [Expand]DevExpress.XtraBars.Docking2010.Views.Widget
  [Expand]DevExpress.XtraBars.Docking2010.Views.WindowsUI
  [Expand]DevExpress.XtraBars.Localization
  [Expand]DevExpress.XtraBars.Navigation
  [Expand]DevExpress.XtraBars.Ribbon
  [Expand]DevExpress.XtraBars.Ribbon.Gallery
  [Expand]DevExpress.XtraBars.Ribbon.ViewInfo
  [Expand]DevExpress.XtraBars.ToastNotifications
  [Expand]DevExpress.XtraBars.Utils
  [Expand]DevExpress.XtraBars.WinRTLiveTiles
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Designer
  [Expand]DevExpress.XtraCharts.Wizard
  [Expand]DevExpress.XtraDataLayout
  [Expand]DevExpress.XtraDiagram
  [Expand]DevExpress.XtraDiagram.Options
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.ButtonPanel
  [Expand]DevExpress.XtraEditors.Calendar
  [Expand]DevExpress.XtraEditors.Camera
  [Expand]DevExpress.XtraEditors.Container
  [Expand]DevExpress.XtraEditors.Controls
  [Expand]DevExpress.XtraEditors.CustomEditor
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraEditors.Filtering
  [Expand]DevExpress.XtraEditors.Mask
  [Expand]DevExpress.XtraEditors.Persistent
  [Expand]DevExpress.XtraEditors.Repository
  [Expand]DevExpress.XtraEditors.ViewInfo
  [Expand]DevExpress.XtraFilterEditor
  [Expand]DevExpress.XtraGauges.Presets.Styles
  [Expand]DevExpress.XtraGauges.Win
  [Expand]DevExpress.XtraGauges.Win.Base
  [Expand]DevExpress.XtraGauges.Win.Gauges.Circular
  [Expand]DevExpress.XtraGauges.Win.Gauges.Digital
  [Expand]DevExpress.XtraGauges.Win.Gauges.Linear
  [Expand]DevExpress.XtraGauges.Win.Gauges.State
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraGrid.Columns
  [Expand]DevExpress.XtraGrid.EditForm
  [Expand]DevExpress.XtraGrid.FilterEditor
  [Expand]DevExpress.XtraGrid.Localization
  [Expand]DevExpress.XtraGrid.Views.BandedGrid
  [Expand]DevExpress.XtraGrid.Views.BandedGrid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Base
  [Expand]DevExpress.XtraGrid.Views.Base.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Card
  [Expand]DevExpress.XtraGrid.Views.Card.ViewInfo
  [Collapse]DevExpress.XtraGrid.Views.Grid
   [Expand]CalcPreviewTextEventArgs Class
    CalcPreviewTextEventHandler Delegate
   [Expand]CellMergeEventArgs Class
    CellMergeEventHandler Delegate
   [Expand]ClipboardRowPastingEventArgs Class
   [Expand]ColumnHeaderCustomDrawEventArgs Class
    ColumnHeaderCustomDrawEventHandler Delegate
   [Expand]CustomFilterDialogEventArgs Class
    CustomFilterDialogEventHandler Delegate
   [Expand]CustomMasterRowEventArgs Class
    CustomMasterRowEventHandler Delegate
   [Expand]CustomRowCellEditEventArgs Class
    CustomRowCellEditEventHandler Delegate
    DetailExpandButtonMode Enumeration
    DrawFocusRectStyle Enumeration
    EditFormBindingMode Enumeration
    EditFormModifiedAction Enumeration
   [Expand]EditFormPreparedEventArgs Class
    EditFormPreparedEventHandler Delegate
   [Expand]EditFormShowingEventArgs Class
    EditFormShowingEventHandler Delegate
   [Expand]EditFormUserControl Class
   [Expand]EditFormValidateEditorEventArgs Class
   [Expand]FilterItem Class
   [Expand]FilterPopupCheckedListBoxEventArgs Class
    FilterPopupCheckedListBoxEventHandler Delegate
   [Expand]FilterPopupDateEventArgs Class
    FilterPopupDateEventHandler Delegate
   [Expand]FilterPopupEventArgs Class
   [Expand]FilterPopupExcelDataEventArgs Class
    FilterPopupExcelDataEventHandler Delegate
   [Expand]FilterPopupExcelEventArgs Class
    FilterPopupExcelEventHandler Delegate
   [Expand]FilterPopupListBoxEventArgs Class
    FilterPopupListBoxEventHandler Delegate
   [Expand]FooterCellCustomDrawEventArgs Class
    FooterCellCustomDrawEventHandler Delegate
    GridEditingMode Enumeration
   [Expand]GridMenuEventArgs Class
    GridMenuEventHandler Delegate
   [Expand]GridMenuItemClickEventArgs Class
    GridMenuItemClickEventHandler Delegate
    GridMenuType Enumeration
    GridMultiSelectMode Enumeration
   [Expand]GridOptionsBehavior Class
   [Expand]GridOptionsClipboard Class
   [Expand]GridOptionsCustomization Class
   [Expand]GridOptionsDetail Class
   [Expand]GridOptionsEditForm Class
   [Expand]GridOptionsFilter Class
   [Expand]GridOptionsHint Class
   [Expand]GridOptionsMenu Class
   [Expand]GridOptionsNavigation Class
   [Expand]GridOptionsPrint Class
   [Expand]GridOptionsSelection Class
   [Expand]GridOptionsView Class
    GridState Enumeration
   [Collapse]GridView Class
     GridView Members
    [Expand]GridView Constructor
    [Expand]GridView Properties
    [Collapse]GridView Events
      AfterPrintRow Event
      BeforePrintRow Event
      CalcPreviewText Event
      CalcRowHeight Event
      CellMerge Event
      ClipboardRowPasting Event
      ColumnWidthChanged Event
      CustomColumnGroup Event
      CustomDrawCell Event
      CustomDrawColumnHeader Event
      CustomDrawFooter Event
      CustomDrawFooterCell Event
      CustomDrawGroupPanel Event
      CustomDrawGroupRow Event
      CustomDrawGroupRowCell Event
      CustomDrawRowFooter Event
      CustomDrawRowFooterCell Event
      CustomDrawRowIndicator Event
      CustomDrawRowPreview Event
      CustomRowCellEdit Event
      CustomRowCellEditForEditing Event
      CustomSummaryCalculate Event
      CustomSummaryExists Event
      DragObjectDrop Event
      DragObjectOver Event
      DragObjectStart Event
      EditFormPrepared Event
      EditFormShowing Event
      GetLoadingImage Event
      GetThumbnailImage Event
      GridMenuItemClick Event
      GroupLevelStyle Event
      GroupRowCollapsed Event
      GroupRowCollapsing Event
      GroupRowExpanded Event
      GroupRowExpanding Event
      HideCustomizationForm Event
      LeftCoordChanged Event
      MasterRowCollapsed Event
      MasterRowCollapsing Event
      MasterRowEmpty Event
      MasterRowExpanded Event
      MasterRowExpanding Event
      MasterRowGetChildList Event
      MasterRowGetLevelDefaultView Event
      MasterRowGetRelationCount Event
      MasterRowGetRelationDisplayCaption Event
      MasterRowGetRelationName Event
      MeasurePreviewHeight Event
      PopupMenuShowing Event
      RowCellClick Event
      RowCellStyle Event
      RowClick Event
      RowStyle Event
      ShowCustomizationForm Event
      ShowGridMenu Event
      ShowingPopupEditForm Event
      TopRowChanged Event
    [Expand]GridView Methods
   [Expand]GridViewAppearances Class
   [Expand]GridViewOptionsFind Class
   [Expand]GridViewPrintAppearances Class
    GroupDrawMode Enumeration
    GroupFooterShowMode Enumeration
   [Expand]GroupLevelStyleEventArgs Class
    GroupLevelStyleEventHandler Delegate
   [Expand]InitNewRowEventArgs Class
    InitNewRowEventHandler Delegate
   [Expand]MasterRowCanExpandEventArgs Class
    MasterRowCanExpandEventHandler Delegate
   [Expand]MasterRowEmptyEventArgs Class
    MasterRowEmptyEventHandler Delegate
   [Expand]MasterRowGetChildListEventArgs Class
    MasterRowGetChildListEventHandler Delegate
   [Expand]MasterRowGetLevelDefaultViewEventArgs Class
    MasterRowGetLevelDefaultViewEventHandler Delegate
   [Expand]MasterRowGetRelationCountEventArgs Class
    MasterRowGetRelationCountEventHandler Delegate
   [Expand]MasterRowGetRelationNameEventArgs Class
    MasterRowGetRelationNameEventHandler Delegate
    NewItemRowPosition Enumeration
   [Expand]PopupMenuShowingEventArgs Class
    PopupMenuShowingEventHandler Delegate
   [Expand]RowCellClickEventArgs Class
    RowCellClickEventHandler Delegate
   [Expand]RowCellStyleEventArgs Class
    RowCellStyleEventHandler Delegate
   [Expand]RowClickEventArgs Class
    RowClickEventHandler Delegate
   [Expand]RowHeightEventArgs Class
    RowHeightEventHandler Delegate
   [Expand]RowIndicatorCustomDrawEventArgs Class
    RowIndicatorCustomDrawEventHandler Delegate
   [Expand]RowStyleEventArgs Class
    RowStyleEventHandler Delegate
    RowVisibleState Enumeration
    ScrollStyleFlags Enumeration
  [Expand]DevExpress.XtraGrid.Views.Grid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Layout
  [Expand]DevExpress.XtraGrid.Views.Layout.Events
  [Expand]DevExpress.XtraGrid.Views.Layout.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Printing
  [Expand]DevExpress.XtraGrid.Views.Tile
  [Expand]DevExpress.XtraGrid.Views.WinExplorer
  [Expand]DevExpress.XtraGrid.WinExplorer
  [Expand]DevExpress.XtraLayout
  [Expand]DevExpress.XtraLayout.Customization
  [Expand]DevExpress.XtraLayout.HitInfo
  [Expand]DevExpress.XtraLayout.Localization
  [Expand]DevExpress.XtraLayout.Utils
  [Expand]DevExpress.XtraMap
  [Expand]DevExpress.XtraMap.Printing
  [Expand]DevExpress.XtraNavBar
  [Expand]DevExpress.XtraNavBar.ViewInfo
  [Expand]DevExpress.XtraPdfViewer
  [Expand]DevExpress.XtraPdfViewer.Commands
  [Expand]DevExpress.XtraPdfViewer.Localization
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.Control
  [Expand]DevExpress.XtraPrinting.Preview
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Localization
  [Expand]DevExpress.XtraRichEdit.Menu
  [Expand]DevExpress.XtraScheduler
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Printing
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Reporting.UI
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Localization
  [Expand]DevExpress.XtraSplashForm
  [Expand]DevExpress.XtraSplashScreen
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Services
  [Expand]DevExpress.XtraTab
  [Expand]DevExpress.XtraTab.Buttons
  [Expand]DevExpress.XtraTab.ViewInfo
  [Expand]DevExpress.XtraTabbedMdi
  [Expand]DevExpress.XtraToolbox
  [Expand]DevExpress.XtraTreeList
  [Expand]DevExpress.XtraTreeList.Columns
  [Expand]DevExpress.XtraTreeList.Data
  [Expand]DevExpress.XtraTreeList.Localization
  [Expand]DevExpress.XtraTreeList.Menu
  [Expand]DevExpress.XtraTreeList.Nodes
  [Expand]DevExpress.XtraTreeList.Nodes.Operations
  [Expand]DevExpress.XtraTreeList.StyleFormatConditions
  [Expand]DevExpress.XtraTreeMap
  [Expand]DevExpress.XtraVerticalGrid
  [Expand]DevExpress.XtraVerticalGrid.Events
  [Expand]DevExpress.XtraVerticalGrid.Localization
  [Expand]DevExpress.XtraVerticalGrid.Rows
  [Expand]DevExpress.XtraWaitForm
  [Expand]DevExpress.XtraWizard
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

GridView.CustomColumnGroup Event

Provides the ability to group data using custom rules.

Namespace:DevExpress.XtraGrid.Views.Grid
Assembly:DevExpress.XtraGrid.v17.2.dll

Expanded Syntax

Expanded Event Data

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

The following CustomColumnSortEventArgs properties provide information specific to this event.
Property Description
Column Gets the column whose values are being compared.
Handled Gets or sets whether a comparison operation is 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.
RowObject1 Gets the first row object being compared.
RowObject2 Gets the second row object being compared.
SortOrder Gets the current sort order applied to the column being processed.
Value1 Gets the first value being compared.
Value2 Gets the second value being compared.

Expanded Remarks

The CustomColumnGroup event can be handled to implement custom logic for grouping rows. This event is fired when any column's GridColumn.SortMode property is set to DevExpress.XtraGrid.ColumnSortMode.Custom and the View's data is grouped by this column.

Each time the event is fired two adjacent rows are compared. If the rows should be combined into the same group, set the CustomColumnSortEventArgs.Result parameter to 0. Otherwise, set it to 1 (or -1). The CustomColumnSortEventArgs.Handled parameter must be set to true to indicate that the current comparison was handled and no default processing is required. If this parameter is left set to false the two rows will be compared using the default comparison mechanism.

The column by which grouping is applied is identified by the CustomColumnSortEventArgs.Column parameter. This column's values in the rows which are being compared are specified by the CustomColumnSortEventArgs.Value1 and CustomColumnSortEventArgs.Value2 parameters.

When providing custom grouping logic via the CustomColumnGroup event, the text displayed by group rows should usually be overridden. To do this, handle the CustomDrawGroupRow event and supply the new text for each group row via the event's Info.GroupText parameter.

Note

The CustomColumnGroup event is fired only for adjacent rows according to the current sort order. Sometimes you may need to change the default sorting logic in order to arrange the rows in specific order. To do this, the ColumnView.CustomColumnSort event can be handled.

Note

Custom grouping via the CustomColumnGroup event is not supported in server mode.

Expanded Example

Assume that a Grid View's "Order Sum" column contains numbers. When grouping is applied to this column, the rows which have values between 0 and 99 in this column should be combined into a single group, the rows whose values fall between 100 and 199 should be combined into another group, etc. To provide custom grouping logic the column's GridColumn.SortMode property should be set to DevExpress.XtraGrid.ColumnSortMode.Custom and the CustomColumnGroup event should be handled to implement the algorithm. In the following example the event's Result parameter is set to 0 if the two rows being compared should be placed within the same group.

The ColumnView.CustomColumnDisplayText event is handled to replace the default text displayed within group rows.

The result of data being custom grouped is shown below:

Expanded See Also

How would you rate this topic?​​​​​​​