所以我有一个网格,列上有很好的ol'列菜单,过滤/排序/排除列,一切正常。
美中不足的是,我希望允许用户重命名列标题和UI中显而易见的位置,以允许它在所述列菜单中。
这样的事情:
(红色位是我点击的另一个选项,然后弹出一个小窗口让我输入一个新标题)
这可能,我该怎么办?
我看到menus可以自定义,网格演示显示如何调整filter弹出窗口中的内容,但我不确定如何添加此项目(我可以看到我会如何以编程方式进行重命名,但只是这样在菜单上获得一个选项让我感到难过。
答案 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)