【发布时间】:2017-06-17 11:52:26
【问题描述】:
我正在尝试使用带有实体框架的 ASP.NET MVC 对 jQuery DataTables 进行服务器端处理。我遇到了Datatables.AspNet Nuget 包,但我不清楚如何在单击表头时使用它对列进行动态排序。
在example on Datatables.AspNet GitHub 中,有这样的:
public ActionResult PageData(IDataTablesRequest request)
{
var data = Models.SampleEntity.GetSampleData();
var filteredData = data.Where(_item => _item.Name.Contains(request.Search.Value));
// Paging filtered data.
var dataPage = filteredData.Skip(request.Start).Take(request.Length);
var response = DataTablesResponse.Create(request, data.Count(), filteredData.Count(), dataPage);
return new DataTablesJsonResult(response, JsonRequestBehavior.AllowGet);
}
但我不确定如何根据 IDataTablesRequest 对象的内容进行动态排序,如下所示:
public interface IDataTablesRequest
{
int Draw { get; }
int Start { get; }
int Length { get; }
ISearch Search { get; }
IEnumerable<IColumn> Columns { get; }
IDictionary<string, object> AdditionalParameters { get; }
}
public interface ISort
{
int Order { get; }
SortDirection Direction { get; }
}
public enum SortDirection
{
Ascending = 0,
Descending = 1
}
【问题讨论】:
-
@EhsanSajjad,谢谢,但看起来您的代码是基于旧版本的 Datatables.AspNet 包。
GetSortedColumns方法似乎不存在了。 -
实际上,我刚刚意识到我使用的是不同的 Nuget 包。你的引用
datatables.mvc5而我正在使用datatables.aspnet.mvc5这似乎是两个不相关的项目,这将解释“缺失”方法。但我仍然明白这个想法。将仔细查看您的代码,看看我是否可以应用它。
标签: c# asp.net-mvc entity-framework linq datatables