是否可以(如果是这样)将项目添加到kendo UI网格的列菜单中?

时间:2013-11-15 12:11:04

标签: kendo-ui kendo-grid

所以我有一个网格,列上有很好的ol'列菜单,过滤/排序/排除列,一切正常。

美中不足的是,我希望允许用户重命名列标题和UI中显而易见的位置,以允许它在所述列菜单中。

这样的事情:

example grid menu

(红色位是我点击的另一个选项,然后弹出一个小窗口让我输入一个新标题)

这可能,我该怎么办?

我看到menus可以自定义,网格演示显示如何调整filter弹出窗口中的内容,但我不确定如何添加此项目(我可以看到我会如何以编程方式进行重命名,但只是这样在菜单上获得一个选项让我感到难过。

2 个答案:

答案 0 :(得分:7)

您可以使用columnMenuInit event。两种可能性:

$("#grid").kendoGrid({
    dataSource: dataSource,
    columnMenu: true,
    columnMenuInit: function (e) {
        var menu = e.container.find(".k-menu").data("kendoMenu");
        var field = e.field;

        // Option 1: use the kendoMenu API ...
        menu.append({
            text: "Rename"
        });

        // Option 2: or create custom html and append manually ..
        var itemHtml = '<li id="my-id" class="k-item k-state-default" role="menuitem">' + 
                       '<span class="k-link"><b>Manual entry</b></span></li>';
        $(e.container).find("ul").append(itemHtml);

        // add an event handler
        menu.bind("select", function (e) {
            var menuText = $(e.item).text();
            if (menuText == "Rename") {
                console.log("Rename for", field);
            } else if (menuText === "Manual entry") {
                console.log("Manual entry for", field);
            }
        });
    }
})

请参阅两种选择: http://jsfiddle.net/lhoeppner/jJnQF/

答案 1 :(得分:0)

我猜过滤器的要点是过滤,而不是对网格进行更改。 但无论如何我发现这个剑道Post可以帮助你实现你所需要的。

你也可以看看这个one