После анализа ситуации с немного больше знаний о MVC, я нашел signficant лучшее решение, используя метод расширения:
public static class KendoExtensions
{
public static GridTemplateColumnBuilder<TModel> DestroyConditional<TModel>(this GridColumnFactory<TModel> factory, Expression<Func<TModel, bool>> expression)
where TModel : class
{
var template = "# if (" + ExpressionHelper.GetExpressionText(expression) +") { # <a class=\"k-button k-button-icontext k-grid-delete\"><span class=\"k-icon k-delete\"></span>" + TextStrings.Delete + "</a># } #";
return factory.Template(e => "").ClientTemplate(template).Title("");
}
}
Feel свободно заменить TextStrings.Delete
на то, что вы чувствуете себя хорошо. Его простая моя логика локализации T4.
Теперь в вашем определении сетки это действительно просто:
.Columns(columns =>
{
columns.DestroyConditional(c => c.CanBeDeleted).Width(120);
}))
ли вы посмотрите на этот http://stackoverflow.com/a/19840309/1876572 – Eldho
@Eldho, да я взял посмотреть на него. Но, похоже, это отключает/разрешает все строки на сервере. Меня беспокоит клиентская сторона на основе данных, а не ViewBag/ViewModel. –
Взгляните на это тоже http://www.telerik.com/forums/how-do-i-conditional-set-the-visibility-of-the-command-edit-button-on-a-row-by -row-basis- – Eldho