Angular Data Grid Context Menu
The Angular Grid allows you to display a context menu by using the built-in ContextMenu component.
The context menu provides a convenient way to apply data processing features to specific rows or to the Grid component. The user can add, edit, and delete records, select and reorder rows, or export the component to a PDF or an Excel file. You can customize the order of the menu items and create custom controls as necessary.
The following example demonstrates how to show a custom ContextMenu when using the kendoGridBinding directive.
Setup
To display a custom ContextMenu on the user's right click when binding the data through the kendoGridBinding directive or the data property:
-
Get the
ContextMenuinstance through a@ViewChilddecorator inside the component code.ts@ViewChild('gridmenu') public gridContextMenu: ContextMenuComponent; -
To prevent the default browser context menu, handle the built-in
cellClickevent and use thepreventDefault().tspublic onCellClick(e: any): void { if (e.type === 'contextmenu') { const originalEvent = e.originalEvent; originalEvent.preventDefault(); ... } } -
To display the menu on the exact row the user has clicked on, use the built-in
show()method of theContextMenuand the coordinates that thecellClickevent returns.tsthis.gridContextMenu.show({ left: originalEvent.pageX, top: originalEvent.pageY, }); -
Handle the
selectevent of theContextMenucomponent and determine the data operation that should be executed.tspublic onSelect({ item }): void { const menuItem = item.text; switch(menuItem) { case 'Up': this.moveUp(); break; case 'Down': this.moveDown(); break; ... } }