Skip to main content

ASPxPivotGrid Class

Represents the ASPxPivotGrid control.

Namespace: DevExpress.Web.ASPxPivotGrid

Assembly: DevExpress.Web.ASPxPivotGrid.v22.1.dll

NuGet Package: DevExpress.Web

Declaration

public class ASPxPivotGrid :
    ASPxDataWebControl,
    IPivotGridDataContainerCore,
    IPivotGridEventsImplementor,
    IPivotGridEventsImplementorBase,
    IViewBagOwner,
    IXtraSerializable,
    IRequiresLoadPostDataControl,
    IDataSource,
    IPopupFilterControlOwner,
    IFilterControlRowOwner,
    IFilterControlOwner,
    IPopupFilterControlStyleOwner,
    IXtraSerializableLayoutEx,
    IMasterControl,
    ISupportsCallbackResult,
    ISupportsFieldsCustomization,
    IXtraSupportDeserializeCollection,
    IXtraSupportDeserializeCollectionItem,
    IXtraSupportShouldSerialize,
    IXtraSerializableLayout,
    IXtraPartlyDeserializable,
    IHeaderFilterPopupOwner,
    ISkinOwner,
    IPropertiesOwner,
    IPagerOwner,
    IControlDesigner,
    IPropertyManagerProvider

Remarks

The ASPxPivotGrid control represents data from the underlying data source in a cross-tabulated form. It calculates summaries and summary totals against specific fields and displays summary values within data cells. The following summary functions are supported: Sum, Average, Count, Min, Max, StdDev, StdDevp, StdVar, StdVarp.

ASPxPivotGrid

Fields are the basic blocks that an end-user can manipulate in the ASPxPivotGrid control. A field is visually represented by a box (field header), which can be dragged between the control’s areas: Column Header Area, Row Header Area, Data Header Area and Filter Header Area. Dragging a field between areas enables you to reorganize data and present it in various forms. Fields positioned within these areas are called column fields, row fields, data fields and filter fields, respectively.

A field is represented by the PivotGridField class. ASPxPivotGrid uses the Binding API to bind Pivot Grid fields to data in OLAP, Server, and Optimized modes. You can use calculated expressions, data source columns, or window calculations as data binding sources.

For column fields, the control lists their values across the top edge. Similarly, row field values are listed across the control’s left. Thus, a cell at the intersection of a column and row is identified by a column field value(s) and row field value(s). Obviously, multiple records in the control’s data source can have identical values in the specified column field(s) and row field(s). Consequently, a cell in the ASPxPivotGrid control represents multiple records and displays a summary value calculated against these records. The summary is calculated against a data field, and the summary type is specified by the data field’s PivotGridFieldBase.SummaryType property.

Note

The ASPxPivotGrid control provides you with a comprehensive client-side functionality implemented using JavaScript code:

Example

This example demonstrates how to create an ASPxPivotGrid and bind it to data in code.

In this example, the ASPxPivotGrid and System.Web.UI.WebControls.AccessDataSource instances are created and initialized in code. Assign the AccessDataSource instance to the ASPxPivotGrid.DataSource property to bind the Pivot Grid to the created data source. Then call the ASPxPivotGrid.RetrieveFields method to generate DataSourceColumnBinding objects for each Pivot Grid field.

View Example

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    Inherits="ASPxPivotGrid_RuntimeDataBinding._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server"/>
</body>
</html>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using DevExpress.Web.ASPxPivotGrid;
using DevExpress.XtraPivotGrid;
using System.Linq;

namespace ASPxPivotGrid_RuntimeDataBinding {
    public partial class _Default : Page {
        //private AccessDataSource ds;
        private SqlDataSource ds;
        private ASPxPivotGrid ASPxPivotGrid1;
        protected override void OnLoad(EventArgs e) {
            base.OnLoad(e);

            // Initializes a data source.
            ds = new SqlDataSource("System.Data.OleDb","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\nwind.mdb",
                "SELECT [CategoryName], [ProductName], [ProductSales], [ShippedDate] FROM [ProductReports]");

            // Initializes ASPxPivotGrid.
            ASPxPivotGrid1 = new ASPxPivotGrid();
            ASPxPivotGrid1.OptionsData.DataProcessingEngine = PivotDataProcessingEngine.Optimized;

            // Binds ASPxPivotGrid to the data source.
            ASPxPivotGrid1.DataSource = ds;

            // Places the Pivot Grid onto a page.
            form1.Controls.Add(ASPxPivotGrid1);

            if (ASPxPivotGrid1.Fields.Count != 0) 
                return;

            // Creates Pivot Grid fields for all data source columns.
            ASPxPivotGrid1.RetrieveFields();

            // Locates the Pivot Grid fields in appropriate areas.
            ASPxPivotGrid1.Fields["CategoryName"].Area = PivotArea.RowArea;
            ASPxPivotGrid1.Fields["ProductName"].Area = PivotArea.RowArea;
            ASPxPivotGrid1.Fields["ShippedDate"].Area = PivotArea.ColumnArea;
            ASPxPivotGrid1.Fields["ProductSales"].Area = PivotArea.DataArea;
            (ASPxPivotGrid1.Fields["ShippedDate"].DataBinding as DataSourceColumnBinding).GroupInterval = PivotGroupInterval.DateYear;

        }
    }
}

Implements

Show 25 items
DevExpress.XtraPivotGrid.Data.IPivotGridEventsImplementorBase
DevExpress.WebUtils.IViewBagOwner
DevExpress.Utils.Serializing.IXtraSerializableLayoutEx
DevExpress.Utils.Serializing.Helpers.IXtraSupportDeserializeCollection
DevExpress.Utils.Serializing.Helpers.IXtraSupportShouldSerialize
DevExpress.Utils.Serializing.IXtraSerializableLayout
DevExpress.Utils.Serializing.Helpers.IXtraPartlyDeserializable
See Also