Back to Devexpress

PivotGridControl.CellDoubleClick Event

windowsforms-devexpress-dot-xtrapivotgrid-dot-pivotgridcontrol-364d3027.md

latest28.7 KB
Original Source

PivotGridControl.CellDoubleClick Event

Occurs when a cell is double-clicked.

Namespace : DevExpress.XtraPivotGrid

Assembly : DevExpress.XtraPivotGrid.v25.2.dll

NuGet Package : DevExpress.Win.PivotGrid

Declaration

csharp
public event PivotCellEventHandler CellDoubleClick
vb
Public Event CellDoubleClick As PivotCellEventHandler

Event Data

The CellDoubleClick event's data class is PivotCellEventArgs. The following properties provide information specific to this event:

PropertyDescription
BoundsGets the cell’s bounds.
ColumnCustomTotalGets the column custom total which displays the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnFieldGets the innermost column field which corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnFieldIndexFor internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnIndexGets the visual index of the column that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnValueTypeGets the type of column which contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DataFieldGets the data field which identifies the column where the processed cell resides. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DisplayTextGets the display text of the cell currently being processed.
FocusedGets whether the processed cell is the focused cell.
RowCustomTotalGets the row custom total which contains the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowFieldGets the innermost row field that corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowFieldIndexFor internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowIndexGets the index of the row that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowValueTypeGets the type of row that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SelectedGets whether the processed cell is selected.
SummaryTypeGets the summary type of the currently processed value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SummaryValueGets the summary value currently being processed. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ValueGets the processed cell’s value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.

The event data class exposes the following methods:

MethodDescription
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>.
CreateDrillDownDataSourceAsync()Returns a list of records used to calculate a summary value for the specified cell asynchronously.
CreateDrillDownDataSourceAsync(List<String>)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns to return.
CreateDrillDownDataSourceAsync(Int32, List<String>)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns and limit the number of records to return.
CreateDrillDownDataSourceAsync(Int32)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns and limit the number of records to return.
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

This event occurs when the user double-clicks a cell in the Data Area. Use event data to identify the cell location, data field, whether the cell is selected or focused.

Example

This example demonstrates how to obtain the records from the control’s underlying data source for a particular cell. Double-click a cell to invoke a form that contains a grid to show the underlying data.

Note

The complete sample project How to: Display Underlying (Drill-Down) Records is available in the DevExpress Examples repository.

The primary data source is the Northwind database contained in the SQL Server data file NW.mdf. The application can use the BindingSource component or the LinqServerModeDataSource instance to retrieve the data from the database. A LinqServerModeDataSource data source is a queryable data source, and it forces the PivotGrid to operate in server mode. Click the Server Mode toggle switch control to switch from one data source to another.

When you double-click the PivotGrid cell, the PivotGridControl.CellDoubleClick event occurs. The following CreateDrillDownDataSource method overrides are called to obtain the list of records associated with the selected cell:

You can also click the Get Grand Total Data button to call the PivotGridControl.CreateDrillDownDataSource method and display all data records that the PivotGridControl uses to show the summarized data.

csharp
using DevExpress.XtraEditors;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraPivotGrid;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace DrillDownDataSourceExample
{
    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        bool serverMode = false;
        public Form1()
        {
            InitializeComponent();
            pivotGridControl1.CellDoubleClick += PivotGridControl1_CellDoubleClick;
            // This line of code is generated by Data Source Configuration Wizard
            linqServerModeSource1.QueryableSource = new DrillDownDataSourceExample.DataClasses1DataContext().Invoices;
        }

        private void PivotGridControl1_CellDoubleClick(object sender, DevExpress.XtraPivotGrid.PivotCellEventArgs e)
        {
            PivotDrillDownDataSource drillDownDataSource;
            if (serverMode)
               drillDownDataSource = e.CreateDrillDownDataSource(25, new List<string> { "ShipName" });
            else
                drillDownDataSource = e.CreateDrillDownDataSource(25);
            XtraForm dataform = CreateDrillDownForm(drillDownDataSource);
            dataform.ShowDialog();
            dataform.Dispose();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'nWDataSet.Invoices' table. You can move, or remove it, as needed.
            this.invoicesTableAdapter.Fill(this.nWDataSet.Invoices);
            SetPivotGridDataSource();
        }

        private XtraForm CreateDrillDownForm(PivotDrillDownDataSource dataSource) {
            XtraForm form = new XtraForm();
            GridControl grid = new GridControl();
            grid.Parent = form;
            grid.Dock = DockStyle.Fill;
            grid.DataSource = dataSource;
            grid.DataSource =
            form.Bounds = new Rectangle(100, 100, 800, 400);
            GridView gridView1 = new GridView();
            grid.MainView = gridView1;
            gridView1.Columns["OrderDate"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            form.Text = string.Format("Underlying Data - {0} Records", dataSource.RowCount);
            return form;
        }

        private void toggleSwitch1_Toggled(object sender, EventArgs e)
        {
            serverMode = ((ToggleSwitch)sender).IsOn;
            SetPivotGridDataSource();
        }

        private void SetPivotGridDataSource()
        {
            if (serverMode)
                pivotGridControl1.DataSource = linqServerModeSource1;
            else
                pivotGridControl1.DataSource = invoicesBindingSource;
        }

        private void btnGrandTotal_Click(object sender, EventArgs e)
        {
            PivotDrillDownDataSource drillDownDataSource = pivotGridControl1.CreateDrillDownDataSource();
            Form dataform = CreateDrillDownForm(drillDownDataSource);
            dataform.ShowDialog();
            dataform.Dispose();
        }
    }
}
vb
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraPivotGrid
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Windows.Forms

Namespace DrillDownDataSourceExample
   Partial Public Class Form1
      Inherits DevExpress.XtraEditors.XtraForm

      Private serverMode As Boolean = False
      Public Sub New()
         InitializeComponent()
         AddHandler pivotGridControl1.CellDoubleClick, AddressOf PivotGridControl1_CellDoubleClick
         ' This line of code is generated by Data Source Configuration Wizard
         linqServerModeSource1.QueryableSource = (New DrillDownDataSourceExample.DataClasses1DataContext()).Invoices
      End Sub

      Private Sub PivotGridControl1_CellDoubleClick(ByVal sender As Object, ByVal e As DevExpress.XtraPivotGrid.PivotCellEventArgs)
         Dim drillDownDataSource As PivotDrillDownDataSource
         If serverMode Then
            drillDownDataSource = e.CreateDrillDownDataSource(25, New List(Of String) From {"ShipName"})
         Else
            drillDownDataSource = e.CreateDrillDownDataSource(25)
         End If
         Dim dataform As XtraForm = CreateDrillDownForm(drillDownDataSource)
         dataform.ShowDialog()
         dataform.Dispose()
      End Sub

      Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
         ' TODO: This line of code loads data into the 'nWDataSet.Invoices' table. You can move, or remove it, as needed.
         Me.invoicesTableAdapter.Fill(Me.nWDataSet.Invoices)
         SetPivotGridDataSource()
      End Sub

      Private Function CreateDrillDownForm(ByVal dataSource As PivotDrillDownDataSource) As XtraForm
         Dim form As New XtraForm()
         Dim grid As New GridControl()
         grid.Parent = form
         grid.Dock = DockStyle.Fill
         grid.DataSource = dataSource
         form.Bounds = New Rectangle(100, 100, 800, 400)
         grid.DataSource = form.Bounds
         Dim gridView1 As New GridView()
         grid.MainView = gridView1
         gridView1.Columns("OrderDate").DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime
         form.Text = String.Format("Underlying Data - {0} Records", dataSource.RowCount)
         Return form
      End Function

      Private Sub toggleSwitch1_Toggled(ByVal sender As Object, ByVal e As EventArgs) Handles toggleSwitch1.Toggled
         serverMode = DirectCast(sender, ToggleSwitch).IsOn
         SetPivotGridDataSource()
      End Sub

      Private Sub SetPivotGridDataSource()
         If serverMode Then
            pivotGridControl1.DataSource = linqServerModeSource1
         Else
            pivotGridControl1.DataSource = invoicesBindingSource
         End If
      End Sub

      Private Sub btnGrandTotal_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGrandTotal.Click
         Dim drillDownDataSource As PivotDrillDownDataSource = pivotGridControl1.CreateDrillDownDataSource()
         Dim dataform As Form = CreateDrillDownForm(drillDownDataSource)
         dataform.ShowDialog()
         dataform.Dispose()
      End Sub
   End Class
End Namespace

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the CellDoubleClick 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.

winforms-pivotgrid-how-to-display-underlying-data/CS/DrillDownDataSourceExample/Form1.cs#L18

csharp
InitializeComponent();
pivotGridControl1.CellDoubleClick += PivotGridControl1_CellDoubleClick;
// This line of code is generated by Data Source Configuration Wizard

winforms-pivotgrid-how-to-display-underlying-data/VB/DrillDownDataSourceExample/Form1.vb#L17

vb
InitializeComponent()
AddHandler pivotGridControl1.CellDoubleClick, AddressOf PivotGridControl1_CellDoubleClick
' This line of code is generated by Data Source Configuration Wizard

See Also

CellClick

PivotGridControl Class

PivotGridControl Members

DevExpress.XtraPivotGrid Namespace