我有一个如下所示的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
属性中false
或DataBound
的条件隐藏第一列,但在columnMenu
列表中它仍然显示,
如果它隐藏在网格中(来自数据绑定功能),我还需要从columnMenu
列表中删除第一列,这需要在运行时完成。
我尝试使用ColumnMenuInit
属性进行此操作,但这似乎不起作用,或者我可能遗漏了某些内容。
答案 0 :(得分:3)
在相应列的配置中设置menu:false
:
http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-columns.menu
这将允许您以编程方式隐藏和显示列。