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("");
}
}
は、あなたが良い感じ何に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