在Kendo网格中仅对一列启用列菜单,默认情况下在页面加载时隐藏特定列

问题描述 投票:0回答:1

我只想为Kendo网格的一个特定列中的列提供列菜单选项。另外,在页面加载时,我想显示一个特定的列并隐藏其他列。用户可以从列之一中提供的列菜单选项中选择其他(隐藏)列。

我已经做过类似的事情来从某些列中隐藏列菜单:

<body>
    <div id="example">
            <div id="grid"></div>

            <script>
                $(document).ready(function () {
                    $("#grid").kendoGrid({
                        dataSource: {
                            type: "odata",
                            transport: {
                                read: "//demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
                            },
                            schema: {
                                model: {
                                    fields: {
                                        OrderID: { type: "number" },
                                        ShipCountry: { type: "string" },
                                        ShipName: { type: "string" },
                                        ShipAddress: { type: "string" }
                                    }
                                }
                            },
                            pageSize: 30,
                            serverPaging: true,
                            serverFiltering: true,
                            serverSorting: true
                        },
                        height: 550,
                        pageable: true,
                        columnMenu: true,
                        columns: [{
                            field: "OrderID",
                            title: "Order ID",
                            width: 120
                        }, {
                            field: "ShipCountry",
                            title: "Ship Country"
                        }, {
                            field: "ShipName",
                            title: "Ship Name"
                        }, {
                            field: "ShipAddress",
                            filterable: false
                        }
                        ]
                    });
                });
$(function(){
     $('#grid .k-header-column-menu').eq(0).hide();
     $('#grid .k-header-column-menu').eq(1).hide();
     $('#grid .k-header-column-menu').eq(2).hide();
})

            </script>
        </div>
</body>

是否有更好的方法来实现这两个功能?

javascript jquery kendo-ui kendo-grid
1个回答
0
投票
var toolbarTemplate = '<div id="column-menu-button" style="float:left" ></div>'; var templ = '<div class="toolbar buttons-wrap" style="text-align: right;"><div id="toolbar"></div></div>'; var grid = $("#grid").kendoGrid({ toolbar: kendo.template(templ), columns: [ {field: "name", menu: true, hidden: true}, {field: "age", menu: false} ], sortable: true, dataSource: [ {name: "Jane Doe", age: 30}, {name: "John Doe", age: 33} ] }).getKendoGrid(); var createKendoColumnMenu = function (id, dataSource, owner) { var kendoColumnMenu = $(id).kendoColumnMenu({ dataSource: dataSource, filterable: false, sortable: false, columns: true, owner: owner, }); }; var createKendoToolBar = function (id) { var kendoToolBar = $(id).kendoToolBar().getKendoToolBar(); return kendoToolBar; }; createKendoToolBar('#toolbar').add({ template: toolbarTemplate, id: 'column-menu', overflow: 'never' }); createKendoColumnMenu('#column-menu-button', grid.dataSource, grid);

检查我的示例:Custom toolbar

© www.soinside.com 2019 - 2024. All rights reserved.