-
Data Grid
- Overview
-
Data Binding
-
Paging and Scrolling
-
Editing
-
Grouping
-
Filtering and Sorting
- Focused Row
-
Row Drag & Drop
-
Selection
-
Columns
- State Persistence
-
Appearance
-
Templates
-
Data Summaries
-
Master-Detail
-
Export to PDF
-
Export to Excel
-
Adaptability
- Keyboard Navigation
-
Pivot Grid
- Overview
-
Data Binding
-
Field Chooser
-
Features
-
Export to Excel
-
Tree List
- Overview
-
Data Binding
- Sorting
- Paging
-
Editing
- Node Drag & Drop
- Focused Row
-
Selection
-
Filtering
-
Column Customization
- State Persistence
- Adaptability
- Keyboard Navigation
-
Scheduler
- Overview
-
Data Binding
-
Views
-
Features
- Virtual Scrolling
-
Grouping
-
Customization
- Adaptability
-
Html Editor
-
Chat
-
Diagram
- Overview
-
Data Binding
-
Featured Shapes
-
Custom Shapes
-
Document Capabilities
-
User Interaction
- UI Customization
- Adaptability
-
Charts
- Overview
-
Data Binding
-
Area Charts
-
Bar Charts
- Bullet Charts
-
Doughnut Charts
-
Financial Charts
-
Line Charts
-
Pie Charts
-
Point Charts
-
Polar and Radar Charts
-
Range Charts
-
Sparkline Charts
-
Tree Map
-
Funnel and Pyramid Charts
- Sankey Chart
-
Combinations
-
More Features
-
Export
-
Selection
-
Tooltips
-
Zooming
-
-
Gantt
- Overview
-
Data
-
UI Customization
- Strip Lines
- Export to PDF
- Sorting
-
Filtering
-
Gauges
- Overview
-
Data Binding
-
Bar Gauge
-
Circular Gauge
-
Linear Gauge
-
Navigation
- Overview
- Accordion
-
Menu
- Multi View
-
Drawer
-
Tab Panel
-
Tabs
-
Toolbar
- Pagination
-
Tree View
- Right-to-Left Support
-
Layout
-
Tile View
- Splitter
-
Gallery
- Scroll View
- Box
- Responsive Box
- Resizable
-
-
Editors
- Overview
- Autocomplete
-
Calendar
- Check Box
- Color Box
-
Date Box
-
Date Range Box
-
Drop Down Box
-
Number Box
-
Select Box
- Switch
-
Tag Box
- Text Area
- Text Box
- Validation
- Custom Text Editor Buttons
- Right-to-Left Support
- Editor Appearance Variants
-
Forms and Multi-Purpose
- Overview
- Button Group
- Field Set
-
Filter Builder
-
Form
- Radio Group
-
Range Selector
- Numeric Scale (Lightweight)
- Numeric Scale
- Date-Time Scale (Lightweight)
- Date-Time Scale
- Logarithmic Scale
- Discrete scale
- Custom Formatting
- Use Range Selection for Calculation
- Use Range Selection for Filtering
- Image on Background
- Chart on Background
- Customized Chart on Background
- Chart on Background with Series Template
- Range Slider
- Slider
-
Sortable
-
File Management
-
File Manager
- Overview
-
File System Types
-
Customization
-
File Uploader
-
-
Actions and Lists
- Overview
-
Action Sheet
-
Button
- Floating Action Button
- Drop Down Button
-
Context Menu
-
List
-
Lookup
-
Maps
- Overview
-
Map
-
Vector Map
-
Dialogs and Notifications
-
Localization
React Data Grid - Web API Service
To access a Web API service from the client, use the createStore method which is part of the DevExtreme.AspNet.Data extension. This extension also allows you to process data for DevExtreme components on the server. The server-side implementation is available under the DataGridWebApiController.cs
tab in the ASP.NET MVC version of this demo.
To notify the DataGrid that data is processed on the server, set the remoteOperations property to true.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
import React from 'react';
import 'devextreme/data/odata/store';
import {
Column,
DataGrid,
FilterRow,
HeaderFilter,
GroupPanel,
Scrolling,
Editing,
Grouping,
Lookup,
MasterDetail,
Summary,
RangeRule,
RequiredRule,
StringLengthRule,
GroupItem,
TotalItem,
ValueFormat,
} from 'devextreme-react/data-grid';
import { createStore } from 'devextreme-aspnet-data-nojquery';
import MasterDetailGrid from './MasterDetailGrid.tsx';
const url = 'https://js.devexpress.com/Demos/Mvc/api/DataGridWebApi';
const dataSource = createStore({
key: 'OrderID',
loadUrl: `${url}/Orders`,
insertUrl: `${url}/InsertOrder`,
updateUrl: `${url}/UpdateOrder`,
deleteUrl: `${url}/DeleteOrder`,
onBeforeSend: (method, ajaxOptions) => {
ajaxOptions.xhrFields = { withCredentials: true };
},
});
const customersData = createStore({
key: 'Value',
loadUrl: `${url}/CustomersLookup`,
onBeforeSend: (method, ajaxOptions) => {
ajaxOptions.xhrFields = { withCredentials: true };
},
});
const shippersData = createStore({
key: 'Value',
loadUrl: `${url}/ShippersLookup`,
onBeforeSend: (method, ajaxOptions) => {
ajaxOptions.xhrFields = { withCredentials: true };
},
});
const App = () => (
<DataGrid
dataSource={dataSource}
showBorders={true}
width="100%"
height={600}
remoteOperations={true}
>
<MasterDetail
enabled={true}
component={MasterDetailGrid}
/>
<FilterRow visible={true} />
<HeaderFilter visible={true} />
<GroupPanel visible={true} />
<Scrolling mode="virtual" />
<Editing
mode="row"
allowAdding={true}
allowDeleting={true}
allowUpdating={true}
/>
<Grouping autoExpandAll={false} />
<Column dataField="CustomerID" caption="Customer">
<Lookup dataSource={customersData} valueExpr="Value" displayExpr="Text" />
<StringLengthRule max={5} message="The field Customer must be a string with a maximum length of 5." />
</Column>
<Column dataField="OrderDate" dataType="date">
<RequiredRule message="The OrderDate field is required." />
</Column>
<Column dataField="Freight">
<HeaderFilter groupInterval={100} />
<RangeRule min={0} max={2000} message="The field Freight must be between 0 and 2000." />
</Column>
<Column dataField="ShipCountry">
<StringLengthRule max={15} message="The field ShipCountry must be a string with a maximum length of 15." />
</Column>
<Column
dataField="ShipVia"
caption="Shipping Company"
dataType="number"
>
<Lookup dataSource={shippersData} valueExpr="Value" displayExpr="Text" />
</Column>
<Summary>
<TotalItem column="Freight" summaryType="sum">
<ValueFormat type="decimal" precision={2} />
</TotalItem>
<GroupItem column="Freight" summaryType="sum">
<ValueFormat type="decimal" precision={2} />
</GroupItem>
<GroupItem summaryType="count" />
</Summary>
</DataGrid>
);
export default App;
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
A 1-Click Solution for CRUD Web API Services with Role-based Access Control via EF Core
If you target .NET for your backend API, be sure to check out Web API Service and register your free copy today. The Solution Wizard scaffolds an OData v4 Web API Service (.NET 6+) with integrated authorization & CRUD operations powered by EF Core ORM. You can use OAuth2, JWT or custom authentication strategies alongside tools like Postman or Swagger (OpenAPI) for API testing. The built-in Web API Service also filters out secured server data based on permissions granted to users. Advanced/enterprise functions include audit trail, endpoints to download reports, file attachments, check validation, obtain localized captions, etc.
To use the free Solution Wizard (which creates the Web API Service), run the Universal Component Installer from the DevExpress Download Manager and use our predefined template in Visual Studio 2022+.
Read Tutorial | View Examples: JavaScript (DevExtreme) & JavaScript (Svelte) | Watch Videos