我得到了一个例外:
{“至少有一个对象必须实现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))
如何解决此异常?
答案 0 :(得分:0)
将列绑定到的值成为排序时列的默认排序值。您的员工和项目需要比较器功能,或者您需要找到另一种方法来对列(名称或ID)进行排序。不需要实现IComparable(string,int等)的简单类型会自动排序。
将计算的计数或排序顺序字段添加到您的技能列表中将起作用:
columns.Bound(skills => skills.EmployeeCount)
columns.Bound(skills => skills.ProjectCount)
...
我没试过这个,但是,它可能有用:
columns.Bound(skills => skills.Employees.Count)