Your search did not match any results.
Pivot Grid

Web API Service

The PivotGrid can communicate with a Web API service. The quantity of aggregated data is irrelevant when aggregation is performed on the server. For example, the widget works with a million aggregated records in this demo.

To configure access to a Web API service from the client, use the createStore method, which is part of the DevExtreme.AspNet.Data extension. This extension also allows you to configure server-side data processing for DevExtreme widgets.

You should also set the remoteOperations option to true to notify the PivotGrid that data is aggregated on the server.

Apply
Reset
import React from 'react'; import { PivotGrid, Scrolling } from 'devextreme-react/pivot-grid'; import { createStore } from 'devextreme-aspnet-data-nojquery'; const dataSource = { remoteOperations: true, store: createStore({ key: 'OrderID', loadUrl: 'https://js.devexpress.com/Demos/WidgetsGalleryDataService/api/Sales/Orders' }), fields: [{ caption: 'Category', dataField: 'ProductCategoryName', width: 250, expanded: true, sortBySummaryField: 'SalesAmount', sortBySummaryPath: [], sortOrder: 'desc', area: 'row' }, { caption: 'Subcategory', dataField: 'ProductSubcategoryName', width: 250, sortBySummaryField: 'SalesAmount', sortBySummaryPath: [], sortOrder: 'desc', area: 'row' }, { caption: 'Product', dataField: 'ProductName', area: 'row', sortBySummaryField: 'SalesAmount', sortBySummaryPath: [], sortOrder: 'desc', width: 250 }, { caption: 'Date', dataField: 'DateKey', dataType: 'date', area: 'column' }, { caption: 'Amount', dataField: 'SalesAmount', summaryType: 'sum', format: 'currency', area: 'data' }, { caption: 'Store', dataField: 'StoreName' }, { caption: 'Quantity', dataField: 'SalesQuantity', summaryType: 'sum' }, { caption: 'Unit Price', dataField: 'UnitPrice', format: 'currency', summaryType: 'sum' }, { dataField: 'Id', visible: false }] }; class App extends React.Component { render() { return ( <PivotGrid allowSorting={true} allowSortingBySummary={true} allowFiltering={true} height={620} showBorders={true} rowHeaderLayout={'tree'} dataSource={dataSource}> <Scrolling mode={'virtual'} /> </PivotGrid> ); } } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render( <App />, document.getElementById('app') );
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.3/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.3/css/dx.light.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body> </html>
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, defaultExtension: 'js', meta: { 'devextreme-aspnet-data-nojquery': { 'esModule': true } }, map: { 'react': 'npm:react@16/umd/react.development.js', 'react-dom': 'npm:react-dom@16/umd/react-dom.development.js', 'prop-types': 'npm:prop-types/prop-types.js', 'devextreme': 'npm:devextreme@19.2', 'devextreme-react': 'npm:devextreme-react@19.2', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'devexpress-gantt': 'npm:devexpress-gantt', 'devextreme-aspnet-data-nojquery': 'npm:devextreme-aspnet-data-nojquery@2.5.1', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, packages: { 'devextreme': { defaultExtension: 'js' }, 'devextreme-react': { main: 'index.js' } }, babelOptions: { sourceMaps: false, stage0: true, react: true } });