使用Telerik.Web.Mvc.UI Grid进行网格排序

时间:2014-04-29 13:52:21

标签: asp.net-mvc telerik

我正在使用Telerik.Web.Mvc.UI网格在Asp.Net MVC网站上显示网格。

所有列都应该是可排序/可过滤的,但正如您将从下图中看到的那样,实际上只有在正确位置有排序/过滤器的人是文件名列和项目请求者柱。

Screen shot of my page...

这些列受以下代码绑定...

        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的原因是因为我们希望能够本地化用于标记列的字符串(即标题)。有没有其他方法可以让我们这样做,但也意味着我们也可以对网格进行排序?

谢谢你的反对......

1 个答案:

答案 0 :(得分:0)

好的 - 问题确实归结于我对HeaderTemplate()的使用。如果我使用Title()方法,那么一切都很好......