Я понимаю, что этот вопрос был опубликован некоторое время назад, но я надеюсь, что мой ответ окажется полезным для других.
В вашей модели данных передайте поле.В этом случае это «RemoveDelete», и, поскольку оно используется для удаления кнопки «Удалить» на основе заранее определенного условия, оно скрыто в сетке.Если данные, отображаемые в вашей сетке, уже содержат условие, которое вы хотите проверить, вам не нужно это делать.
В сетке ...
.ClientEvents(events => events.OnRowDataBound("onRowDataBound"))
.Columns(columns => {
columns.Bound(c => c.ColumnName).Attributes().Etc();
columns.Bound(c => c.ColumnName).Attributes().Etc();
columns.Command(commands => {
commands.Edit().ButtonType(ButtonType);
commands.Delete().ButtonType(ButtonType);
});
columns.Bound(c => c.RemoveDelete).Hidden(true);
})
сценарий ...
<script type="text/javascript">
function onRowDataBound(e) {
if (e.dataItem.RemoveDelete > 0) {
$(e.row).find('a.t-grid-delete').remove(); //remove Delete button
}
}
</script>
, чтобы удалить кнопку Редактировать ...
$(e.row).find('a.t-grid-edit').remove();
, чтобы скрыть последний столбец, используйте
$(e.row).find('td.t-last a.t-grid-action').hide();
С учетом всего сказанного, это позволяет вамчтобы заранее определить, какие кнопки вы хотите отображать построчно.