Kendo MVC C#是否可以在某种模板中包含通用字段以轻松地包含在所有网格中?

问题描述 投票:0回答:1

所以我们有大约90个网格。为了标准化列宽等,我正在考虑将审计跟踪字段拉入某种基类,但是我不确定这样做的可能性。我们有六个字段用于创建日期,上次更改日期和删除日期以及执行日期,它们位于每个网格的末尾。有没有一种方法可以在一个普通的地方生成它们并包含它们?

c# telerik-grid telerik-mvc
1个回答
0
投票

要解决此问题,您需要将extension method写入GridBuilder类。

由于要在末尾添加审计跟踪列,因此您将采用与found in this solutionthis solution相同的策略:

  1. 写扩展方法.AddAuditTrailColumns()
  2. 定义非审核跟踪的网格列
  3. 呼叫.AddAuditTrailColumns()

它看起来像:

public static class Extensions
{
    public static GridBuilder<T> AddAuditTrailColumns<T>(this GridBuilder<T> builder) where T: class
    {
        //add audit trail columns
        builder.Columns(columns =>
        {
            columns.Bound(p => p.createDate).Filterable(false);
            columns.Bound(p => p.lastChangeDate);
            columns.Bound(p => p.deleteDate);
            columns.Bound(p => p.lastChangedBy);
        });
        return builder;
    }
}

在模板中

@(Html.Kendo.Grid<Product>("Grid74")
    .BindTo(Model)
    .Columns(columns =>
           {
               columns.Bound(p => p.Name);
               columns.Bound(p => p.Description);
           })
   .AddAuditTrailColumns()
)

请不要仅复制此代码并开始运行,因为我尚未对此进行编译或使用VS进行过测试。但是理论在那里并且应该起作用。

我为您的本能尽可能地重复使用表示赞赏。维护这90个网格的人员将可以轻松完成工作,最终您将减少工作量。双赢。

© www.soinside.com 2019 - 2024. All rights reserved.