【发布时间】:2014-06-15 12:14:00
【问题描述】:
我正在使用 Telerik.Web.Mvc.UI Grid 在 Asp.Net MVC 网站上显示一个网格。
所有列都应该是可排序/可过滤的,但正如您从下图中看到的那样,唯一真正在正确位置具有排序/过滤器的是文件名列和请求的项目柱子。
这些列由以下代码绑定...
c.Bound(o => o.FileName);
c.Bound(o => o.Dto.ProjectDetailsDto.ProjectRequiredBy)
.Template(o => o.Dto.ProjectDetailsDto.ProjectRequiredBy.HasValue ? o.Dto.ProjectDetailsDto.ProjectRequiredBy.Value.ToString(Model.DateTimePattern) : "")
.HeaderHtmlAttributes(Resources.EditorLocalization.ProjectDeadline);
让我们限制问题,并问自己为什么项目名称不可排序(它不是)。项目名称是这样绑定的:
c.Bound(o => o.Dto.ProjectName)
.Template(o => Html.ActionLink(o.Dto.ProjectName, "Details", "Project", new { projectId = o.Dto.AssetTask.ProjectId }, null))
.HeaderTemplate(Resources.EditorLocalization.ProjectName)
.Sortable(true)
.Filterable(true);
首先,我认为可能是使用模板的列无法排序 - 只有它们可以,因为我们有列所需的项目的工作案例。
也许,我想,是 HeaderTemplate() 的存在导致了我们的问题,但为什么会这样呢?不过,我不能否认,我认为应该工作但没有工作的所有东西都有一个 HeaderTemplate。
所以 - 让我们责备它,看看我们能做些什么......我使用 HeaderTemplate 的原因是因为我们希望能够本地化用于标记列(即标题)的字符串。有没有其他方法可以让我们做到这一点,但也意味着我们也可以在网格上进行排序?
感谢您的期待...
【问题讨论】:
标签: asp.net-mvc telerik