Я использую Infragistics Ignite UI grid в моем приложении ASP.NET MVC 4. Вот как это выглядит в виде:Неверное свойство в Infragistics Ignite UI grid
@model IQueryable<User>
@(Html.Infragistics().Grid(Model)
.AutoGenerateColumns(false)
.Columns(column => {
column.For(p => p.Id)
.HeaderText("ID");
column.For(p => p.Name)
.HeaderText("Name");
})
.DataSourceUrl(Html.BuildUrlFromExpression<UserController>(c => c.GetUsers()))
.Features(feature => {
feature.Paging().Type(OpType.Remote);
feature.Sorting().Type(OpType.Remote).CaseSensitive(false);
feature.Filtering().Type(OpType.Remote);
feature.Resizing();
feature.Tooltips();
})
.Width("100%")
.DataBind()
.Render())
Одним из свойств объекта пользователя является дочерним объектом, который может быть пустым. Вот суть схемы:
public class User
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Role Role { get; set; }
}
public class Role
{
public virtual int Id { get; set; }
public virtual string Description { get; set; }
}
Сетка работает прекрасно, но мне нужно, чтобы отобразить Описание свойство Роль ребенка в колонке. Кажется, это должно быть достаточно легко, но я не смог понять это. Например, это не работает, потому что роль равна нулю, иногда (это показывает строку заголовка сетки и вечный значок загрузки):
.Columns(column => {
column.For(p => p.Id)
.HeaderText("ID");
column.For(p => p.Name)
.HeaderText("Name");
column.For(p => p.Role.Description)
.HeaderText("Role");
})
Это не работает либо:
column.For(p => p.Role.Description)
.HeaderText("Role")
.Template("${Site.Name}");