对于我的所有模型实体,我继承了一个基类,但是当我尝试将一个继承的字段放在网格上时,它就不会显示它们。 我的解决方法是在派生类上创建一个包装器属性,现在网格显示该列。
例如:
public class BaseEntity
{
public Guid RowId { get; set; }
public bool Deprecated { get; set; }
public bool Deleted { get; set; }<br/>
public DateTime DateTimeStamp { get; set; }
}
public class Foo : BaseEntity
{
public int FooId { get; set; }
public string Description{ get; set; }
}
和网格设置
@(Html.Kendo().Grid<Foo>()
.Name("Grid")
.Columns(cols =>
{
cols.Bound(c => c.FooId);
cols.Bound(c => c.Description);
cols.Bound(c => c.DateTimeStamp).Format("{0:yyyy-MM-dd HH:mm}").Title("Date/Time").Sortable(false);
.Pageable()
.Sortable()
)
为了使它工作,我必须添加一个引用基类属性的属性,如下所示:
public class Foo : BaseEntity
{
public int FooId { get; set; }
public string Description{ get; set; }
public new DateTime DateTimeStamp
{
get { return base.DateTimeStamp; }
set { base.DateTimeStamp = value; }
}
}
有没有办法避免在派生类上使用包装器属性?
由于