【发布时间】:2020-03-24 14:50:02
【问题描述】:
所以我们有大约 90 个网格。为了标准化列宽等,我正在考虑将审计跟踪字段提取到某种基类中,但我不确定这有多大可能。我们有六个字段用于创建日期、上次更改日期和删除日期以及执行者,它们位于每个网格的末尾。有没有某种方法可以在一个共同的地方生成它们并包含它们?
【问题讨论】:
标签: c# telerik-grid telerik-mvc code-reuse
所以我们有大约 90 个网格。为了标准化列宽等,我正在考虑将审计跟踪字段提取到某种基类中,但我不确定这有多大可能。我们有六个字段用于创建日期、上次更改日期和删除日期以及执行者,它们位于每个网格的末尾。有没有某种方法可以在一个共同的地方生成它们并包含它们?
【问题讨论】:
标签: c# telerik-grid telerik-mvc code-reuse
是的
要解决此问题,您需要将extension method 写入GridBuilder 类。
因为您想将 审计跟踪 列添加到末尾,所以您将采用相同的策略,即 found in this solution 和 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;
}
}
如果您的所有网格都使用相同的基类,您可以使用 lambda。 在模板中:
@(Html.Kendo.Grid<Product>("Grid74")
.BindTo(Model)
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Description);
})
.AddAuditTrailColumns()
)
我赞赏您尽可能多地重用的直觉。维护这 90 个网格的人的工作会更轻松,而你最终会做更少的工作。双赢。
【讨论】: