|
<ejs-treegrid id='TreeGrid' #treegrid [dataSource]='data' copyHierarchyMode='Child' height='315'
(contextMenuOpen)='contextMenuOpen($event)' […>
</ejs-treegrid>
this.contextMenuItems = [
{ text: "Add Child", target: ".e-content", id: "addchild" },
{ text: "Copy", target: ".e-content", id: "copy" },
];
}
btnclick(e: MouseEventArgs){
var element: EventTarget = e.target;
var ev: Event = document.createEvent('HTMLEvents');
ev['pageX'] = e.pageX, ev['pageY'] = e.pageY;
ev.initEvent("contextmenu", true, false)
element.dispatchEvent(ev);
}
contextMenuOpen(args: BeforeOpenCloseEventArgs){
if (!(<HTMLElement>args.event.target).classList.contains('e-btn-icon')){
args.cancel = true;
}
}
private createTreeGridColumns() {
return [
{
field: "taskID",
headerText: "Task ID",
isPrimaryKey:"true",
editType: "defaultedit",
customAttributes: { class: "customcss" }
},
…
{
headerText: "action",
commands: [
{
buttonOption: {
iconCss: "e-icons e-detail",
cssClass: "e-flat",
click: this.btnclick.bind(this)
}
}
|
|
<ejs-treegrid id='TreeGrid' #treegrid [dataSource]='data' copyHierarchyMode='Child'
(contextMenuClick)='contextMenuClick($event)' [contextMenuItems]='contextMenuItems'
[gridLines]='lines'>
</ejs-treegrid>
contextMenuClick(args: ContextMenuClickEventArgs): void {
var idx :any= args.rowInfo.rowIndex
if (args.item.id === 'addchild') { // add child
var data = {taskID:88,priority:"high"};
this.treegrid.addRecord(data, idx, "Child"); // pass data, index, position
}
else if (args.item.id === 'copy') {
this.treegrid.selectRow(idx);
this.treegrid.copy();
}
}
|