2013-11-08 2 views
0

Я использую 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}"); 

ответ

1

Я выглядел высоко и низко для «Свойства нулевой способности сетки Infragistics», но ничего не нашел, пока не искал свойство «Ignite UI grid nullable». Эта работа:

column.For(p => p.Role) 
     .HeaderText("Role") 
     .DataType("object") 
     .FormatterFunction("function(obj) { if (!obj) return 'None'; return obj.Description; }"); 

Ненавижу это, когда это произойдет. (source)

Смежные вопросы