JavaScript/jQuery Gantt - contextMenu.items
The context menu contains a set of default commands: 'addTask', 'taskDetails', and 'deleteTask'. Use the contextMenu property to recreate the context menu items.
To add a predefined item to the context menu, add its name and optional settings (for example, 'visible', 'text', and 'icon') to the items collection.
- <dx-gantt ... >
- <dxo-context-menu>
- <dxi-item name="addTask"></dxi-item>
- <dxi-item name="deleteTask"></dxi-item>
- <dxi-item text="Zoom">
- <dxi-item name="zoomIn"></dxi-item>
- <dxi-item name="zoomOut"></dxi-item>
- </dxi-item>
- </dxo-context-menu>
- ...
- </dx-gantt>
- import { DxGanttModule } from "devextreme-angular";
- // ...
- export class AppComponent {
- // ...
- }
- @NgModule({
- imports: [
- // ...
- DxGanttModule
- ],
- // ...
- })
Custom Items
To add a custom context menu item, specify its text and optional settings (for example, name or category). Use the customCommand event to handle clicks on custom context menu items.
- <dx-gantt (onCustomCommand)="onCustomCommand($event)" >
- <dxo-context-menu>
- <dxi-item text="Category">
- <dxi-item name="item1" text="Item 1"></dxi-item>
- <dxi-item name="item2" text="Item 2"></dxi-item>
- <dxi-item name="item3" text="Item 3"></dxi-item>
- </dxi-item>
- </dxo-context-menu>
- ...
- </dx-gantt>
- import { DxGanttModule } from "devextreme-angular";
- // ...
- export class AppComponent {
- onCustomCommand(e) {
- if(e.name == 'item1') {
- // your code
- }
- }
- }
- @NgModule({
- imports: [
- // ...
- DxGanttModule
- ],
- // ...
- })
Result:
icon
This property accepts one of the following:
- The icon's URL
- The icon's name if the icon is from the DevExtreme icon library
- The icon's CSS class if the icon is from an external icon library (see External Icon Libraries)
- The icon in the Base64 format
- The icon in the SVG format. Ensure that the source is reliable.
name
- <dx-gantt (onCustomCommand)="onCustomCommand($event)" >
- <dxo-context-menu>
- <dxi-item text="Category">
- <dxi-item name="item1" text="Item 1"></dxi-item>
- <dxi-item name="item2" text="Item 2"></dxi-item>
- <dxi-item name="item3" text="Item 3"></dxi-item>
- </dxi-item>
- </dxo-context-menu>
- ...
- </dx-gantt>
- import { DxGanttModule } from "devextreme-angular";
- // ...
- export class AppComponent {
- onCustomCommand(e) {
- if(e.name == 'item1') {
- // your code
- }
- }
- }
- @NgModule({
- imports: [
- // ...
- DxGanttModule
- ],
- // ...
- })
template
The following types of the specified value are available.
- Assign a string containing the name of the required template.
- Assign a jQuery object of the template's container.
- Assign a DOM Node of the template's container.
- Assign a function that returns the jQuery object or a DOM Node of the template's container.
The following example adds a custom item to the component. Note that Angular and Vue use custom templates instead of the template property. In React, specify the render or component properties.
- <dx-gantt ... >
- <dxo-context-menu>
- <dxi-item ...>
- <div *dxTemplate>
- <div>Custom Item</div>
- </div>
- </dxi-item>
- </dxo-context-menu>
- </dx-gantt>
- import { Component } from '@angular/core';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- // ...
- }
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppComponent } from './app.component';
- import { DxGanttModule } from 'devextreme-angular';
- @NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- DxGanttModule
- ],
- providers: [ ],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.