2013-11-12 3 views
20

Как скрыть/показать и включить/отключить столбцы в сетке кендо при условии или событии. Я мог найти только вариант включения/выключения колонки kendogrid в .modelСтолбцы Kendo Grid Скрыть/Показать, Включить/Отключить

Любая помощь приветствуется.

Спасибо заранее!

ответ

31

Вы показ/скрытие столбцов в KendoUI сетке вы должны использовать 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

+0

Thanx много скрыть/показать работал как очарование, даже если сетка редактируема. аналогично все, что доступно для включения/выключения столбцов в пользовательском логическом событии pr. Thnx again –

+0

Не уверен в понимании последней части вашего комментария «все, что доступно для включения/выключения столбцов в специальном логическом событии pr» ... В принципе, используйте «showColumn' /' hideColumn »из события или когда выполняется условие , – OnaBai

+0

Отлично @OnaBai ... Это отличная помощь ... – Mahib

1

Сетка Кендо содержит метод showColumn, который будет содержать строку индекса или столбца. Чтобы включить скрытие/отображение столбцов, вы инициализируете столбец gridX как обычный столбец и отмечаете его скрытым (в MVC это метод .Hidden() при связывании столбца). Затем на основе события страницы вы можете просто вызвать showColumn (а затем скрытьColumn, чтобы отменить операцию).

0

Для Кендо сетки, которая уже была создана, вы можете показать/скрыть сделать все столбцы редактируемые/нередактируемы по:

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; 
     } 
    } 
} 
Смежные вопросы