Что ж, ребята, я нашел решение своего вопроса в разделе документации TypeScript прямо здесь
К сожалению, сейчас это не работает, как показано в демо. Но они сказали, что эта проблема уже исправлена , и выпуск будет сегодня, в январе. 10, 2018.
Вот рабочий пример версии TypeScript.
import { Grid, ColumnMenu, Sort, Page } from '@syncfusion/ej2-grids';
import { MenuEventArgs } from '@syncfusion/ej2-navigations';
import { data } from './datasource.ts';
Grid.Inject(ColumnMenu, Page, Sort);
// The problem is in the base constant value
// columnMenuClick should have a value "columnMenuClick"
// but it has a value "contextMenuClick" like contextMenuClick constant for context menu
let grid: Grid = new Grid({
dataSource: data,
allowPaging: true,
allowSorting: true,
showColumnMenu: true,
columnMenuItems:[{text:'Clear Sorting', id:'gridclearsorting'}],
contextMenuClick: function(args: MenuEventArgs){
if(args.item.id === 'gridclearsorting'){
grid.clearSorting();
}
},
sortSettings:{
columns:[{direction: "ascending", field: "OrderID"}]
},
columns: [
{ field: 'OrderID', headerText: 'Order ID', width: 200, textAlign: 'right', showInColumnChooser: false },
{ field: 'Freight', width: 150, format: 'C2', textAlign: 'right', editType: 'numericedit' },
{ field: 'ShipName', headerText: 'Ship Name', width: 300 },
{ field: 'ShipCountry', headerText: 'Ship Country', visible: false, width: 200 },
{ field: 'ShipCity', headerText: 'Ship City', width: 200 }
]
});
grid.appendTo('#Grid');
Here is a working example of Angular 4 version.
import { Component, OnInit, ViewChild } from '@angular/core';
import { SortService, ResizeService, GroupService, ColumnMenuService, PageService, FilterService } from '@syncfusion/ej2-ng-grids';
import { ContextMenuItem, GroupSettingsModel, FilterSettingsModel, EditSettingsModel, ColumnMenuItemModel } from '@syncfusion/ej2-ng-grids';
import { GridComponent } from '@syncfusion/ej2-ng-grids';
import { MenuEventArgs } from '@syncfusion/ej2-navigations';
import { data } from './data';
@Component({
selector: 'control-content',
templateUrl: 'columnmenu.html',
})
export class ColumnMenuComponent implements OnInit {
public data: Object[];
public groupOptions: GroupSettingsModel;
public filterSettings: FilterSettingsModel;
public columnMenuItems: ColumnMenuItemModel[];
@ViewChild('grid')
public grid: GridComponent;
ngOnInit(): void {
this.data = data.slice(0, 60);
this.groupOptions = { showGroupedColumn: true };
this.filterSettings = { type: 'checkbox' };
this.columnMenuItems = [{text:'Clear Sorting', id:'gridclearsorting'}];
}
public columnMenuClick(args: MenuEventArgs): void {
console.log('123');
if(args.item.id === 'gridclearsorting'){
this.grid.clearSorting();
}
}
}
person
Alexandr
schedule
10.01.2018