Kendo MVC C# 是否可以在某种模板中包含通用字段以轻松包含在所有网格中?
Kendo MVC C# is it possible to have generic fields in some kind of template to include easily in all grids?
所以我们有大约 90 个网格。为了标准化列宽等,我正在考虑将审计跟踪字段拉出到某种基础 class 中,但我不确定这有多大可能。我们有六个字段用于创建日期、上次更改日期和删除日期以及谁做的,它们位于每个网格的末尾。有没有某种方法可以在一个公共位置生成它们并将它们包括在内?
是
为了解决这个问题,你需要写一个extension method to the GridBuilder class.
因为您想将 审计跟踪 列添加到末尾,所以您将采用相同的策略 found in this solution and this solution:
- 写扩展方法
.AddAuditTrailColumns()
- 定义非审计跟踪的网格列
- 致电
.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("CreateDate").Filterable(false);
columns.Bound("CreatedBy");
columns.Bound("LastChangeDate");
columns.Bound("LastChangedBy");
columns.Bound("DeleteDate");
columns.Bound("DeletedBy");
});
return builder;
}
}
如果所有网格都使用相同的基数,则可以使用 lambdas class。
在模板中:
@(Html.Kendo.Grid<Product>("Grid74")
.BindTo(Model)
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Description);
})
.AddAuditTrailColumns()
)
我赞赏你尽可能重用的本能。维护这 90 个网格的人的工作会更轻松,最终你会做更少的工作。双赢。
所以我们有大约 90 个网格。为了标准化列宽等,我正在考虑将审计跟踪字段拉出到某种基础 class 中,但我不确定这有多大可能。我们有六个字段用于创建日期、上次更改日期和删除日期以及谁做的,它们位于每个网格的末尾。有没有某种方法可以在一个公共位置生成它们并将它们包括在内?
是
为了解决这个问题,你需要写一个extension method to the GridBuilder class.
因为您想将 审计跟踪 列添加到末尾,所以您将采用相同的策略 found in this solution and this solution:
- 写扩展方法
.AddAuditTrailColumns()
- 定义非审计跟踪的网格列
- 致电
.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("CreateDate").Filterable(false);
columns.Bound("CreatedBy");
columns.Bound("LastChangeDate");
columns.Bound("LastChangedBy");
columns.Bound("DeleteDate");
columns.Bound("DeletedBy");
});
return builder;
}
}
如果所有网格都使用相同的基数,则可以使用 lambdas class。 在模板中:
@(Html.Kendo.Grid<Product>("Grid74")
.BindTo(Model)
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Description);
})
.AddAuditTrailColumns()
)
我赞赏你尽可能重用的本能。维护这 90 个网格的人的工作会更轻松,最终你会做更少的工作。双赢。