Your search did not match any results.
Data Grid

Overview

DevExtreme JavaScript DataGrid is a client-side grid control available as a jQuery component. This control supports binding to data from local arrays, JSON files, Web API and OData services, as well as custom remote services. Check out other demos in this section to explore more DataGrid features, like data editing and validation, paging, scrolling, etc.

To get started with the DevExtreme DataGrid component, refer to the following tutorial for step-by-step instructions: Getting Started with DataGrid.

Backend API
Copy to CodePen
Apply
Reset
$(() => { $('#gridContainer').dxDataGrid({ dataSource: { store: { type: 'odata', url: 'https://js.devexpress.com/Demos/SalesViewer/odata/DaySaleDtoes', key: 'Id', beforeSend(request) { const year = new Date().getFullYear() - 1; request.params.startDate = `${year}-05-10`; request.params.endDate = `${year}-5-15`; }, }, }, paging: { pageSize: 10, }, pager: { showPageSizeSelector: true, allowedPageSizes: [10, 25, 50, 100], }, remoteOperations: false, searchPanel: { visible: true, highlightCaseSensitive: true, }, groupPanel: { visible: true }, grouping: { autoExpandAll: false, }, allowColumnReordering: true, rowAlternationEnabled: true, showBorders: true, columns: [ { dataField: 'Product', groupIndex: 0, }, { dataField: 'Amount', caption: 'Sale Amount', dataType: 'number', format: 'currency', alignment: 'right', }, { dataField: 'Discount', caption: 'Discount %', dataType: 'number', format: 'percent', alignment: 'right', allowGrouping: false, cellTemplate: discountCellTemplate, cssClass: 'bullet', }, { dataField: 'SaleDate', dataType: 'date', }, { dataField: 'Region', dataType: 'string', }, { dataField: 'Sector', dataType: 'string', }, { dataField: 'Channel', dataType: 'string', }, { dataField: 'Customer', dataType: 'string', width: 150, }, ], onContentReady(e) { if (!collapsed) { collapsed = true; e.component.expandRow(['EnviroCare']); } }, }); }); const discountCellTemplate = function (container, options) { $('<div/>').dxBullet({ onIncidentOccurred: null, size: { width: 150, height: 35, }, margin: { top: 5, bottom: 0, left: 5, }, showTarget: false, showZeroLevel: true, value: options.value * 100, startScaleValue: 0, endScaleValue: 100, tooltip: { enabled: true, font: { size: 18, }, paddingTopBottom: 2, customizeTooltip() { return { text: options.text }; }, zIndex: 5, }, }).appendTo(container); }; let collapsed = false;
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <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" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.4.4/cldr.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.4.4/cldr/event.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.4.4/cldr/supplemental.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.4.4/cldr/unresolved.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.2.6/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/22.2.6/js/dx.all.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="gridContainer"></div> </div> </body> </html>
.dx-datagrid .dx-data-row > td.bullet { padding-top: 0; padding-bottom: 0; }