在某些状态下由ASC / DESC命令

时间:2016-09-09 07:35:38

标签: asp.net asp.net-mvc razor

我想过滤表格中的某些元素,但是当表格中存在某种状态时,我希望在降序中过滤相同的内容。

实施例

  

当州是"打开"我想过滤" tijdSluit"上升。当te州是" Gesloten"我想过滤" tijdSluit"降。

我现在使用的代码

return View(db.GetAllRequests().OrderBy(Request => Request.request.Status).ThenBy(Request => Request.request.tijdSluit));

问题在于您无法在同一个表中过滤升序和降序。我该如何解决这个问题?

我试过了

return View(db.GetAllRequests().Where(Request => Request.request.Status == 1).OrderBy(Request => Request.request.Status).Where(Request => Request.request.Status != 1).OrderByDescending(Request => Request.request.tijdSluit));

但是当我运行该代码时,我得到一张空表。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

当然,不可能同时订购表asc和desc。也许在你的情况下你需要两个有序序列?像这样的事情?

var allRequests = db.GetAllRequests();
var openRequests = allRequests.Where(Request => Request.request.Status == 1).OrderBy(Request => Request.request.Status).ToList();
var otherRequests = allRequests.Where(Request => Request.request.Status != 1).OrderByDescending(Request => Request.request.tijdSluit)).ToList();
openRequests.AddRange(otherRequests);
return View(openRequests);