Самая большая проблема с пользовательской командой столбцов заключается в том, что вы не можете получить доступ к dataItem строки и не можете манипулировать ими, как в шаблоне столбца. Официальная документация, или, точнее, официальная поддержка форума, говорит, что подходите так же, как и вы (с dataBound) Я нахожу это слишком сложным для небольших функций, таких как значок отключения или что-то в этом роде.
Я нашел обходной путь, он не чистый, но я в порядке. Есть функция visible
, которая выполняется при инициализации строки, там вы можете получить доступ к строке dom и манипулировать ею. Например, я добавил класс custom-disabled
с условием данных элемента:
command: [
{
name: 'delete',
template: '<a class="btn btn-action btn-lg k-grid-delete" href="\\#"><span class="fas fa-trash" aria-hidden="true"></span></a>',
click(e) {
_deleteCommand(_getGridData(e));
},
visible: function (item) {
if (item.disableDelete) {
setTimeout(function () {
$("[data-uid=" + item.uid + "]").find('.k-grid-delete').addClass('custom-disabled');
}, 0);
}
return true;
}
}
]
//CSS
.custom-disabled {
pointer-events: none;
opacity: .65;
}
Или, если вы согласны, вы можете скрыть эту команду следующим образом:
command: [
{
name: 'delete',
template: '<a class="btn btn-action btn-lg k-grid-delete" href="\\#"><span class="fas fa-trash" aria-hidden="true"></span></a>',
visible: function (item) {
return item.disableDelete;
}
}
]