Your search did not match any results.
Pivot Grid

Integrated Field Chooser

Documentation

The field chooser is a pivot grid element that allows you to manage the displayed fields. You can invoke it by clicking the Field Chooser icon at the top-left corner or by selecting the "Show Field Chooser" command on the PivotGrid's context menu. Changes made in the field chooser can be applied to the PivotGrid in instant or on-demand mode. In the latter case, the field chooser is supplied with the OK and Cancel buttons.

Copy to CodeSandBox
Apply
Reset
import React from 'react'; import PivotGridDataSource from 'devextreme/ui/pivot_grid/data_source'; import SelectBox from 'devextreme-react/select-box'; import PivotGrid, { FieldChooser } from 'devextreme-react/pivot-grid'; class App extends React.Component { constructor(props) { super(props); this.state = { applyChangesMode: 'instantly' }; this.changeMode = this.changeMode.bind(this); } render() { return ( <React.Fragment> <PivotGrid dataSource={dataSource} allowSortingBySummary={true} allowFiltering={true} allowSorting={true} height={470} showBorders={true} > <FieldChooser enabled={true} allowSearch={true} applyChangesMode={this.state.applyChangesMode} /> </PivotGrid> <div className={'options'}> <div className={'caption'}>Options</div> <div className={'option'}> <span>Apply Changes Mode:</span> <SelectBox items={applyChangesModes} width={180} value={this.state.applyChangesMode} onValueChanged={this.changeMode}> </SelectBox> </div> </div> </React.Fragment> ); } changeMode(e) { this.setState({ applyChangesMode: e.value }); } } const dataSource = new PivotGridDataSource({ fields: [ { dataField: '[Product].[Category]', area: 'row' }, { dataField: '[Product].[Subcategory]', area: 'row', headerFilter: { allowSearch: true } }, { dataField: '[Ship Date].[Calendar Year]', area: 'column' }, { dataField: '[Ship Date].[Month of Year]', area: 'column' }, { dataField: '[Measures].[Customer Count]', area: 'data' } ], store: { type: 'xmla', url: 'https://demos.devexpress.com/Services/OLAP/msmdpump.dll', catalog: 'Adventure Works DW Standard Edition', cube: 'Adventure Works' } }); const applyChangesModes = ['instantly', 'onDemand']; 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.1.6/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.1.6/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="styles.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> </div> </body> </html>
.options { padding: 20px; background-color: rgba(191, 191, 191, 0.15); margin-top: 20px; } .caption { font-size: 18px; font-weight: 500; } .option { margin-top: 10px; } .dx-selectbox { margin-top: 5px; }
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, defaultExtension: 'js', 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.1', 'devextreme-react': 'npm:devextreme-react@19.1', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.6/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', // 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 } });