Your search did not match any results.
Pivot Grid

Remote Virtual Scrolling

Remote virtual scrolling allows the PivotGrid to load data pages from the server when they enter the viewport. To enable remote virtual scrolling, set the widget's scrolling.mode option to "virtual" and the PivotGridDataSource's paginate option to true. Refer to the paginate description for more information about paging specifics.

Copy to CodeSandBox
Apply
Reset
<template> <div> <div class="long-title"> <h3>Sales Statistics</h3> </div> <dx-pivot-grid :allow-sorting="true" :allow-filtering="true" :height="570" :show-borders="true" :data-source="dataSource" > <dx-field-panel :visible="true" :show-filter-fields="false" /> <dx-field-chooser :allow-search="true" /> <dx-header-filter :allow-search="true" /> <dx-scrolling mode="virtual" /> </dx-pivot-grid> </div> </template> <script> import DxPivotGrid, { DxFieldPanel, DxFieldChooser, DxHeaderFilter, DxScrolling } from 'devextreme-vue/pivot-grid'; import PivotGridDataSource from 'devextreme/ui/pivot_grid/data_source'; import XmlaStore from 'devextreme/ui/pivot_grid/xmla_store'; export default { components: { DxPivotGrid, DxFieldPanel, DxFieldChooser, DxHeaderFilter, DxScrolling }, data() { return { dataSource: new PivotGridDataSource({ paginate: true, fields: [ { dataField: '[Customer].[Customer]', area: 'row' }, { dataField: '[Ship Date].[Calendar Year]', area: 'column' }, { dataField: '[Ship Date].[Month of Year]', area: 'column' }, { dataField: '[Measures].[Internet Sales Amount]', area: 'data' } ], store: new XmlaStore({ type: 'xmla', url: 'https://demos.devexpress.com/Services/OLAP/msmdpump.dll', catalog: 'Adventure Works DW Standard Edition', cube: 'Adventure Works' }) }) }; } }; </script> <style scoped> .long-title h3 { font-family: "Segoe UI Light", "Helvetica Neue Light", "Segoe UI", "Helvetica Neue", "Trebuchet MS", Verdana; font-weight: 200; font-size: 28px; text-align: center; margin-bottom: 20px; } </style>
import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#app', components: { App }, template: '<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.1.5/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.1.5/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> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"/> </div> </body> </html>
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, map: { vue: 'npm:vue@2.6.3/dist/vue.esm.browser.js', 'vue-loader': 'npm:systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@19.1', 'devextreme-vue': 'npm:devextreme-vue@19.1', jszip: 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.6/dist/quill.js', 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, meta: { '*.vue': { loader: 'vue-loader' } }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' } }, babelOptions: { sourceMaps: false, stage0: true } });