在kendo Grid中获取异常

时间:2016-02-01 14:31:55

标签: jquery asp.net-mvc kendo-ui kendo-grid

我得到了一个例外:

  

{“至少有一个对象必须实现IComparable。”}

当我在kendo网格中对特定列进行排序时

     @(Html.Kendo().Grid((IEnumerable<xxy>)(Model))
 .Name("technologyGrid")
      columns.Bound(skills => skills.Employees).Title("Number of Tagged Employees").Template(
         @<label>
             @{
                 var total = item.Employees.Count();
                 @Html.Label(total.ToString())
             }
         </label>).Width(50);
       columns.Bound(skills => skills.Projects).Title("Number of Tagged Projects").Template(
         @<label>
             @{
                 var total = item.Projects.Count();
                 @Html.Label(total.ToString())
             }
         </label>).Width(50);

   })
      .Scrollable()
      .Pageable(pageable => pageable)
      .Refresh(true)
      .PageSizes(true)
      .ButtonCount(5))
      .Sortable(sortable => sortable.AllowUnsort(false))

如何解决此异常?

1 个答案:

答案 0 :(得分:0)

将列绑定到的值成为排序时列的默认排序值。您的员工和项目需要比较器功能,或者您需要找到另一种方法来对列(名称或ID)进行排序。不需要实现IComparable(string,int等)的简单类型会自动排序。

将计算的计数或排序顺序字段添加到您的技能列表中将起作用:

columns.Bound(skills => skills.EmployeeCount)
columns.Bound(skills => skills.ProjectCount)

...

我没试过这个,但是,它可能有用:

columns.Bound(skills => skills.Employees.Count)