Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 列菜单项列表自定义_Javascript_Angular_Typescript_Syncfusion - Fatal编程技术网

Javascript 列菜单项列表自定义

Javascript 列菜单项列表自定义,javascript,angular,typescript,syncfusion,Javascript,Angular,Typescript,Syncfusion,目前,我正在研究Angular 2的SyncFusion grid,发现了一个很好的功能——打开列菜单,将所有控件(排序、分组、筛选)放在一个地方 但这还不足以满足我的需要,我正在寻找自定义列菜单中项目列表的方法,例如,我希望能够使用自定义操作添加我的项目,以便在单击/选择用户操作时做出反应 例如,我想添加一个项目来直接隐藏当前列或固定此列 你能告诉我这是否可能,如果可能的话如何实施吗?或者我应该为此操作创建一个自定义组件 提前谢谢。好了,伙计们,我在文档的TypeScript部分找到了问题的解

目前,我正在研究Angular 2的SyncFusion grid,发现了一个很好的功能——打开列菜单,将所有控件(排序、分组、筛选)放在一个地方

但这还不足以满足我的需要,我正在寻找自定义列菜单中项目列表的方法,例如,我希望能够使用自定义操作添加我的项目,以便在单击/选择用户操作时做出反应

例如,我想添加一个项目来直接隐藏当前列或固定此列

你能告诉我这是否可能,如果可能的话如何实施吗?或者我应该为此操作创建一个自定义组件


提前谢谢。

好了,伙计们,我在文档的TypeScript部分找到了问题的解决方案,对吗

不幸的是,它现在不能像演示中显示的那样工作。但他们表示,这个问题已经存在,发布日期将是今天,2018年1月10日

这里是一个工作的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');

这里是一个角度4版本的工作。


Essential JS 2 Grid v 15.4.24已经发布,并且包含了“上下文菜单事件触发”的问题修复。请找到下面的工作plunker示例

columnMenuClick(args){
    if(args.item.id === 'gridclearsorting'){
        this.grid.clearSorting();
    }
}


在该示例中,我们添加了自定义列菜单选项以清除网格排序。

您应该升级到版本5。版本2已经有一年多的历史了,并且包含很多不推荐使用的模块。对不起,我的错误。我们使用最新的角度版本。但是,如果有可能使用Angular 5以这种方式操纵同步融合网格?
columnMenuClick(args){
    if(args.item.id === 'gridclearsorting'){
        this.grid.clearSorting();
    }
}