我能够到外地属性添加到图像列,并调用与显示/隐藏列。
{ field: "photo", title:" ", filterable: false, sortable: false, template: kendo.template($(".column-photo-employee").html()), width: 30, locked:true }
我使用一个按钮,下拉菜单,列出来切换显示或隐藏所有列名和图标,但这里是我的js代码:
var grid = $(".grid").data("kendoGrid");
var colid = ['photo','last','first','user_id','wms_id','ta_id','payroll_id','alt_id','facility','department','supervisor','shift','tg','ag','activity_id','activity_name','start','end'];
var prefix3h = 'sch3hide-';
function createCallback(a){
return function(){
$('#' + prefix3h + colid[a]).toggleClass('fa-eye fa-eye-slash');
for (var i = 0; i < grid.columns.length; i++) {
if (grid.columns[i].field === colid[a]) {
var col = grid.columns[i];
if (col.hidden) {
grid.showColumn(col.field);
} else {
grid.hideColumn(col.field);
}
}
}
}
}
for(var a = 0; a < colid.length; a++) {
$('#' + prefix3h + colid[a]).click(createCallback(a));
}
的“colid”变量是一个数组包含所有列的“名称” - 实际上是所有列的字段属性。 循环的下部是click事件。 createCallback函数隐藏并显示该列。我不得不在第二个循环中添加以解释列移动或锁定/解锁时的情况。
我对锁定和解锁列做了同样的事情,但只是使用lockColumn或unlockColumn。
作为一个非程序员,我花了一段时间才弄明白这一点。张贴希望它可以帮助某人。
谢谢!但为什么它不适用于列名? – Arcturus 2015-02-06 06:50:43
因为没有与模板列关联的名称。他们应该为列添加一个名称属性,以便您可以为模板列设置名称。 – ataravati 2015-02-06 15:44:35
感谢ataravati的澄清。 – Arcturus 2015-02-07 05:50:45