Your search did not match any results.
Data Grid

Custom Data Source

Documentation
For consuming data from a data source, which is not supported by the DevExtreme data layer out of the box, the DataGrid uses the CustomStore. To load data, the CustomStore needs the load function that you should implement by yourself. Note that this store can be declared explicitly or in the DataSource configuration object.
Copy to Codepen
Apply
Reset
window.onload = function() { var orders = new DevExpress.data.CustomStore({ load: function (loadOptions) { var deferred = $.Deferred(), params = "?"; params += "skip=" + loadOptions.skip || 0; params += "&take=" + loadOptions.take || 12; if (loadOptions.sort) { params += "&orderby=" + loadOptions.sort[0].selector; if (loadOptions.sort[0].desc) params += " desc"; } var xhr = new XMLHttpRequest(); xhr.open("GET", "https://js.devexpress.com/Demos/WidgetsGallery/data/orderItems" + params, true); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { var result = JSON.parse(xhr.responseText); deferred.resolve(result.items, { totalCount: result.totalCount }); } else { deferred.reject("Data Loading Error"); } } }; xhr.send(); return deferred.promise(); } }); var viewModel = { dataGridOptions: { dataSource: { store: orders }, remoteOperations: { sorting: true, paging: true }, paging: { pageSize: 12 }, pager: { showPageSizeSelector: true, allowedPageSizes: [8, 12, 20] }, columns: [ "OrderNumber", "OrderDate", "StoreCity", "StoreState", "Employee", { dataField: "SaleAmount", format: "currency" } ] } }; ko.applyBindings(viewModel, document.getElementById("data-grid-demo")); };
<!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="js/jquery-3.1.0.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/16.2.6/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/16.2.6/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/16.2.6/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/16.2.6/js/dx.all.js"></script> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="data-grid-demo"> <div id="gridContainer" data-bind="dxDataGrid: dataGridOptions"></div> </div> </div> </body> </html>
#gridContainer { width: 100%; }