如何从Kendo网格中的columnMenu列表中删除列

时间:2016-10-13 19:46:42

标签: javascript jquery kendo-ui kendo-grid

我有一个如下所示的Kendo网格:

$("#grid-primaryUser").kendoGrid({
    dataSource: UserDataSource,
    columns: [
        {
            title: 'Is Approver',
            template: "<input type='checkbox'/>"
        },
        {
            title: 'First Name',
            field: 'FirstName'
        },
        {
            title: 'Last Name',
            field: 'LastName'
        }
    ],
    toolbar: [
        { name: "save", text: app.common.resources.JS_.saveAll() }
    ],
    dataBound: function (e) {
        var grid = $("#grid-primaryUser").data("kendoGrid");
        var isAPACRegionOffice = $('#IsAPACRegionOffice').val() == 'True' ? true : false;
        if (grid != null && !isAPACRegionOffice) {
            grid.hideColumn(0);
            $("#grid-primaryUser").find(".k-grid-toolbar").detach();
        }
    },
    height: 250,
    groupable: false,
    sortable: true,
    pageable: false,
    resizable: true,
    reorderable: true,
    columnMenu: {
        messages: {
            sortAscending: app.common.resources.JS_.kendoGridColumnMenuSortAscending(),
            sortDescending: app.common.resources.JS_.kendoGridColumnMenuSortDescending(),
            columns: app.common.resources.JS_.kendoGridColumnMenuColumns(),
            unlock: app.common.resources.JS_Services_PropertyEventSearchService.kendoGridColumnMenuUnlock(),
            lock: app.common.resources.JS_Services_PropertyEventSearchService.kendoGridColumnMenuLock()
        }
    },
    columnMenuInit: function (e) {
        var item = e.container.find(".k-item k-state-default k-first");
        //item.prev(".k-separator").remove();
        item.remove();
    }
});

在这里,我可以根据true属性中falseDataBound的条件隐藏第一列,但在columnMenu列表中它仍然显示,

如果它隐藏在网格中(来自数据绑定功能),我还需要从columnMenu列表中删除第一列,这需要在运行时完成。

我尝试使用ColumnMenuInit属性进行此操作,但这似乎不起作用,或者我可能遗漏了某些内容。

1 个答案:

答案 0 :(得分:3)

在相应列的配置中设置menu:false

http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.menu

这将允许您以编程方式隐藏和显示列。