【发布时间】:2013-11-24 16:49:03
【问题描述】:
如何根据条件或事件隐藏/显示和启用/禁用剑道网格中的列。 我只能在 .model 中找到启用/禁用 kendogrid 列的选项
感谢任何帮助。
提前谢谢你!
【问题讨论】:
标签: kendo-ui kendo-grid
如何根据条件或事件隐藏/显示和启用/禁用剑道网格中的列。 我只能在 .model 中找到启用/禁用 kendogrid 列的选项
感谢任何帮助。
提前谢谢你!
【问题讨论】:
标签: kendo-ui kendo-grid
对于已经创建的剑道网格,您可以通过以下方式显示/隐藏使所有列可编辑/不可编辑:
var allowEdit = false;
var grid = $("#sampleGrid").data("kendoGrid");
grid.showColumn(0);
grid.showColumn(1);
if (!allowEdit) {
grid.hideColumn(0);
grid.hideColumn(1);
}
var len = $("#sampleGrid").find("tbody tr").length;
for (var i = 0; i <= len ; i++) {
var model = $("#sampleGrid").data("kendoGrid").dataSource.at(i);
if (model) {
for (i = 0; i <= (grid.columns.length - 1) ; i++) {
var column = grid.columns[i];
model.fields[column.field].editable = allowEdit;
}
}
}
【讨论】:
您在 KendoUI Grid 中显示/隐藏列,您应该使用 showColumn 和 hideColumn 并使用数字(要显示/隐藏的列的索引)或字符串(字段的名称)作为参数在该列中关联)。
例子:
var grid = $("#grid").kendoGrid({
dataSource: ds,
editable : false,
pageable : true,
columns :
[
{ field: "FirstName", width: 90, title: "First Name" },
{ field: "LastName", width: 90, title: "Last Name" },
{ field: "City", width: 100 }
]
}).data("kendoGrid");
$("#show_col1").on("click", function() {
// Use the index of the column to show
grid.showColumn(0);
});
$("#hide_col1").on("click", function() {
// Use the name of the field to hide it
grid.hideColumn("FirstName");
});
您可以通过在列初始化中设置hidden 来控制该列最初是否应隐藏。
在此处查看示例:http://jsfiddle.net/OnaBai/XNcmt
【讨论】:
showColumn/hideColumn条件满足。
Kendo 网格包含一个showColumn 方法,该方法将采用索引或列名字符串。要启用隐藏/显示列,您需要将网格 columnX 初始化为普通列,并将其标记为隐藏(在 MVC 中,这是绑定列时的 .Hidden() 方法)。然后基于一个页面事件,你可以简单的调用showColumn(然后hideColumn进行反向操作)。
【讨论】: