In this blog, we will learn how to create a context menu in Dev express data grid in angular applications. DevExtreme is a UI component Datagrid that represents data from a remote/local source in the form of a grid. DevExtreme UI component offers such basic features as sorting, filtering, grouping, pagination, searching.
Step 1: Create a new Application
ng new dev-express-grid
Step 2: Install Node_modules
npm install --force
Step 3: Install devextreme packages
npm install devextreme@21.1 devextreme-angular@21.1 --save --save-exact
Step 4: import the below modules in app.module.ts
import { DxDataGridModule, DxBulletModule, DxTemplateModule, DxContextMenuModule } from 'devextreme-angular'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; ... @NgModule({ imports: [ ... DxDataGridModule, DxTemplateModule, DxBulletModule, DxContextMenuModule ], ... }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
Step 5: In the component.ts file
import { Component, OnInit, NgModule, enableProdMode } from '@angular/core'; import notify from 'devextreme/ui/notify'; if (!/localhost/.test(document.location.host)) { enableProdMode(); } @Component({ selector: 'app-dev-express', templateUrl: './dev-express.component.html', styleUrls: ['./dev-express.component.css'] }) export class DevExpressComponent implements OnInit { dataSource: any; constructor() { //here it is context menu this.dataSource = [ { text: 'Close Model', icon: 'dx-icon-clearsquare' }, { text: 'Model Details', icon: 'dx-icon-file' }, { text: 'Save As', icon: 'dx-icon-save' }, { text: 'Archive', icon: 'dx-icon-arrowdown' }, { text: 'Download', icon: 'dx-icon-download' }, { text: 'Delete', icon: 'dx-icon-trash' }, { text: 'Collect My Input', icon: 'dx-icon-paste' }, { text: 'Evalution Status', icon: 'dx-icon-orderedlist' }, { text: 'Participants', icon: 'dx-icon-group' }, { text: 'Get Model link and Copy to Clipboard', icon: 'dx-icon-parentfolder' }, { text: 'Get Links..', icon: 'dx-icon-link' }, { text: 'Allocate', icon: 'dx-icon-fieldchooser' }, { text: 'Results', icon: 'dx-icon-percent' }, { text: 'Dashboards', icon: 'dx-icon-favorites' }, { text: 'Send Invitations', icon: 'dx-icon-message' }, { text: 'Create Template or Default Option set', icon: 'dx-icon-copy' }, { text: 'Model Snapshots', icon: 'dx-icon-photo' }, { text: 'Model Logs', icon: 'dx-icon-event' } ]; } itemClick(data: any) { if (!data.itemData.items) { notify("The \"" + data.itemData.text + "\" item was clicked", "success", 1500); } } ngOnInit(): void { } }
Step 6: In the component.html file
<dx-data-grid id="gridContainer" dataSource="https://js.devexpress.com/Demos/WidgetsGallery/JSDemos/data/customers.json" [showBorders]="true"> <!--Pagination--> <dxo-paging [pageSize]="5"></dxo-paging> <dxo-pager [showPageSizeSelector]="true" [allowedPageSizes]="[3,5,10]"></dxo-pager> <!--Searching--> <dxo-search-panel [visible]="true" [highlightCaseSensitive]="true"></dxo-search-panel> <!--Grouping--> <dxo-group-panel [visible]="true"></dxo-group-panel> <dxo-grouping [autoExpandAll]="false"></dxo-grouping> <dxi-column dataField="CompanyName"></dxi-column> <dxi-column dataField="City"></dxi-column> <dxi-column dataField="State"></dxi-column> <dxi-column dataField="Phone"></dxi-column> <dxi-column dataField="Fax"></dxi-column> </dx-data-grid> <!--Context Menu--> <dx-context-menu [dataSource]="dataSource" [width]="200" target="#gridContainer" (onItemClick)="itemClick($event)"> <div *dxTemplate="let e of 'item'"> <div> <span [ngClass]="e.icon"></span> <span *ngIf="e.items" class="dx-icon-spinright"></span> {{e.text}} </div> </div> </dx-context-menu>
Step 7: In Index.html
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Dev Express Grid</title> <base href="/"> <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/21.1.5/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/21.1.5/css/dx.light.css" /> <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/> <link rel="icon" type="image/x-icon" href="favicon.ico"> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/zone.js@0.10.3/dist/zone.js"></script> <script src="https://unpkg.com/reflect-metadata@0.1.3/Reflect.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script src="config.js"></script> <script> System.import('app').catch(console.error.bind(console)); </script> </head> <body> <app-root></app-root> </body> </html>
Step 8: Now, Run the Applications.
npm start
That’s it.
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular