我正在使用Telerik.Web.Mvc.UI网格在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的原因是因为我们希望能够本地化用于标记列的字符串(即标题)。有没有其他方法可以让我们这样做,但也意味着我们也可以对网格进行排序?
谢谢你的反对......
答案 0 :(得分:0)
好的 - 问题确实归结于我对HeaderTemplate()的使用。如果我使用Title()方法,那么一切都很好......