DHTMLX Docs & Samples Explorer

setContextMenu(menu)

adds custom context menu of type dhtmlXMenuObject. Use “onBeforeContextMenu” event to customize menu for a particular tree item.

    <link rel="stylesheet" type="text/css" href="../dhtmlxMenu/codebase/skins/dhtmlxmenu_dhx_skyblue.css">
    <script type="text/javascript" language="JavaScript" src="../dhtmlxMenu/codebase/dhtmlxmenu.js"></script>
    <script type="text/javascript" language="JavaScript" src="../dhtmlxMenu/codebase/ext/dhtmlxmenu_ext.js"></script>
    var menu = new dhtmlXMenuObject();
    menu.setIconsPath("../dhtmlxMenu/codebase/imgs/dhtmlxmenu_dhx_skyblue");
    menu.renderAsContextMenu();
    menu.loadXMLString('<menu><item id="m1" text="Item name placeholder"/><item id="m2" text="Get info"/></menu>');
    menu.attachEvent("onClick", function(id){
        var obj = menu.getUserData("","obj");
        if (obj) {
            var o = obj.o;
            if (obj.type == "p") {
                alert("Project, id=" + o.getId() + ", name=" + o.getName() + ", start date=" + o.getStartDate() +
                        ", duration=" + o.getDuration() + "hours, percent complete=" + o.getPercentCompleted() + "%");
            } else
            if (obj.type == "t") {
                alert("Task, id=" + obj.o.getId() + ", name=" + obj.o.getName() + ", EST=" + obj.o.getEST() +
                        ", duration=" + o.getDuration() + "hours, percent complete=" + o.getPercentCompleted() + "%" +
                        ", parentTaskId=" + o.getParentTaskId() + ", pred.taskId=" + o.getPredecessorTaskId());
            }
        }
    });
    ganttChartControl.setContextMenu(menu);
    ganttChartControl.attachEvent("onBeforeContextMenu", function(menu,obj) {
 
        // A sample of disabling menu for some particular tree item
        if (obj.getId()==15) return false;
 
        if (obj.isProject) {
            // Project menu
            menu.setItemText("m1", "Project: " + obj.getName());
            menu.setUserData("","obj",{type:"p",o:obj});
        } else if (obj.isTask) {
            // Task menu
            menu.setItemText("m1", "Task: " + obj.getName());
            menu.setUserData("","obj",{type:"t",o:obj});
        }
    });
 
    ganttChartControl.create("div15");