Your search did not match any results.
Data Grid

Column Customization

Documentation

The DataGrid widget includes a comprehensive set of appearance and behavior customization options for individual grid columns. In this example, column selection, reordering, resizing and fixed columns are enabled and the following custom settings have been applied: custom alignment has been set for the Position column; a calculated value is displayed for the Employee column. The Employee column is also anchored to the grid’s left edge, so it is always displayed in the grid regardless of horizontal scrolling. You can disable the fixed column or fix a different column within the grid container using the column header’s context menu.

Copy to CodeSandBox
Apply
Reset
<template> <div> <dx-data-grid id="gridContainer" :data-source="employees" :allow-column-reordering="true" :allow-column-resizing="true" :column-auto-width="true" :show-borders="true" > <dx-column-chooser :enabled="true"/> <dx-column-fixing :enabled="true"/> <dx-column :width="230" :fixed="true" :calculate-cell-value="calculateCellValue" caption="Employee" /> <dx-column data-field="BirthDate" data-type="date" /> <dx-column data-field="HireDate" data-type="date" /> <dx-column data-field="Position" alignment="right" /> <dx-column :width="230" data-field="Address" /> <dx-column data-field="City"/> <dx-column data-field="State"/> <dx-column :visible="false" data-field="Zipcode" /> <dx-column data-field="HomePhone"/> <dx-column data-field="MobilePhone"/> <dx-column data-field="Skype"/> <dx-column data-field="Email"/> </dx-data-grid> </div> </template> <script> import { DxDataGrid, DxColumn, DxColumnChooser, DxColumnFixing } from 'devextreme-vue/data-grid'; import service from './data.js'; export default { components: { DxDataGrid, DxColumn, DxColumnChooser, DxColumnFixing }, data() { return { employees: service.getEmployees() }; }, methods: { calculateCellValue(data) { return [data.Title, data.FirstName, data.LastName].join(' '); } } }; </script> <style scoped> #gridContainer { height: 440px; } </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.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/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> </div> </body> </html>
const employees = [{ 'ID': 1, 'FirstName': 'John', 'LastName': 'Heart', 'Position': 'CEO', 'BirthDate': '1964/03/16', 'HireDate': '1995/01/15', 'Title': 'Mr.', 'Address': '351 S Hill St.', 'City': 'Los Angeles', 'State': 'California', 'Zipcode': 90013, 'Email': 'jheart@dx-email.com', 'Skype': 'jheartDXskype', 'HomePhone': '(213) 555-9208', 'DepartmentID': 6, 'MobilePhone': '(213) 555-9392' }, { 'ID': 2, 'FirstName': 'Olivia', 'LastName': 'Peyton', 'Position': 'Sales Assistant', 'BirthDate': '1981/06/03', 'HireDate': '2012/05/14', 'Title': 'Mrs.', 'Address': '807 W Paseo Del Mar', 'City': 'Los Angeles', 'State': 'California', 'Zipcode': 90036, 'Email': 'oliviap@dx-email.com', 'Skype': 'oliviapDXskype', 'HomePhone': '(310) 555-2728', 'DepartmentID': 5, 'MobilePhone': '(818) 555-2387' }, { 'ID': 3, 'FirstName': 'Robert', 'LastName': 'Reagan', 'Position': 'CMO', 'BirthDate': '1974/09/07', 'HireDate': '2002/11/08', 'Title': 'Mr.', 'Address': '4 Westmoreland Pl.', 'City': 'Bentonville', 'State': 'Arkansas', 'Zipcode': 91103, 'Email': 'robertr@dx-email.com', 'Skype': 'robertrDXskype', 'HomePhone': '(818) 555-2438', 'DepartmentID': 6, 'MobilePhone': '(818) 555-2387' }, { 'ID': 4, 'FirstName': 'Greta', 'LastName': 'Sims', 'Position': 'HR Manager', 'BirthDate': '1977/11/22', 'HireDate': '1998/04/23', 'Title': 'Ms.', 'Address': '1700 S Grandview Dr.', 'State': 'Georgia', 'City': 'Atlanta', 'Zipcode': 91803, 'Email': 'gretas@dx-email.com', 'Skype': 'gretasDXskype', 'HomePhone': '(818) 555-0976', 'DepartmentID': 5, 'MobilePhone': '(818) 555-6546' }, { 'ID': 5, 'FirstName': 'Brett', 'LastName': 'Wade', 'Position': 'IT Manager', 'BirthDate': '1968/12/01', 'HireDate': '2009/03/06', 'Title': 'Mr.', 'Address': '1120 Old Mill Rd.', 'State': 'Idaho', 'City': 'Boise', 'Zipcode': 91108, 'Email': 'brettw@dx-email.com', 'Skype': 'brettwDXskype', 'HomePhone': '(626) 555-5985', 'DepartmentID': 7, 'MobilePhone': '(626) 555-0358' }, { 'ID': 6, 'FirstName': 'Sandra', 'LastName': 'Johnson', 'Position': 'Controller', 'BirthDate': '1974/11/15', 'HireDate': '2005/05/11', 'Title': 'Mrs.', 'Address': '4600 N Virginia Rd.', 'State': 'Utah', 'City': 'Beaver', 'Zipcode': 90807, 'Email': 'sandraj@dx-email.com', 'Skype': 'sandrajDXskype', 'HomePhone': '(562) 555-8272', 'DepartmentID': 5, 'MobilePhone': '(562) 555-2082' }, { 'ID': 7, 'FirstName': 'Kevin', 'LastName': 'Carter', 'Position': 'Shipping Manager', 'BirthDate': '1978/01/09', 'HireDate': '2009/08/11', 'Title': 'Mr.', 'Address': '424 N Main St.', 'State': 'California', 'City': 'San Diego', 'Zipcode': 90012, 'Email': 'kevinc@dx-email.com', 'Skype': 'kevincDXskype', 'HomePhone': '(213) 555-8038', 'DepartmentID': 3, 'MobilePhone': '(213) 555-2840' }, { 'ID': 8, 'FirstName': 'Cynthia', 'LastName': 'Stanwick', 'Position': 'HR Assistant', 'BirthDate': '1985/06/05', 'HireDate': '2008/03/24', 'Title': 'Ms.', 'Address': '2211 Bonita Dr.', 'City': 'Little Rock', 'State': 'Arkansas', 'Zipcode': 90265, 'Email': 'cindys@dx-email.com', 'Skype': 'cindysDXskype', 'HomePhone': '(818) 555-6808', 'DepartmentID': 4, 'MobilePhone': '(818) 555-6655' }, { 'ID': 9, 'FirstName': 'Kent', 'LastName': 'Samuelson', 'Position': 'Ombudsman', 'BirthDate': '1972/09/11', 'HireDate': '2009/04/22', 'Title': 'Dr.', 'Address': '12100 Mora Dr', 'City': 'St. Louis', 'State': 'Missouri', 'Zipcode': 90272, 'Email': 'kents@dx-email.com', 'Skype': 'kentsDXskype', 'HomePhone': '(562) 555-1328', 'DepartmentID': 26, 'MobilePhone': '(562) 555-9282' }, { 'ID': 10, 'FirstName': 'Taylor', 'LastName': 'Riley', 'Position': 'Network Admin', 'BirthDate': '1982/08/14', 'HireDate': '2012/04/14', 'Title': 'Mr.', 'Address': '7776 Torreyson Dr', 'City': 'San Jose', 'State': 'California', 'Zipcode': 90012, 'Email': 'taylorr@dx-email.com', 'Skype': 'taylorrDXskype', 'HomePhone': '(310) 555-9712', 'DepartmentID': 5, 'MobilePhone': '(310) 555-7276' }]; export default { getEmployees() { return employees; } };
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:dx-systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@19.2', 'devextreme-vue': 'npm:devextreme-vue@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', '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 } });