MVC5 + EF6 + Bootstrap3怎么实现排序,搜索,分页功能

  介绍

这篇文章主要介绍了MVC5 + EF6 + Bootstrap3怎么实现排序,搜索,分页功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>前言

本节我们向这个页面中加入排序,搜索和分页功能。

 MVC5 + EF6 + Bootstrap3怎么实现排序,搜索,分页功能

<>强排序

从上图中的地址栏中可以看到这个页面调用的是公司的控制器下的指数行动。因此我们就先打开控制器文件夹下的CompanyController。cs文件,写入如下代码:

using 来;   using  System.Web.Mvc;   using  SlarkInc.DAL;   using 系统;      namespace  SlarkInc.Controllers   {   public 才能class  CompanyController :控制器   {才能   ,,,private  CompanyContext  db =, new  CompanyContext ();   ,,,public  ViewResult 指数(string 排序方式)   ,,,{   ,,,,,ViewBag.FirstNameSortParm =, String.IsNullOrEmpty(排序方式),?,“first_desc",:,“,“;   ,,,,,ViewBag.LastNameSortParm =, sortOrder ==,“last", ?,“last_desc",:,“, last";   ,,,,,var  workers =,得到w  db.Workers拷贝   ,,,,,,,,,,,select  w;   ,,,,,switch (排序方式)   ,,,,,{   ,,,,,,,case “first_desc":   ,,,,,,,,,workers =, workers.OrderByDescending (w =祝辞,w.FirstName);   ,,,,,,,,,休息;   ,,,,,,,case “last_desc":   ,,,,,,,,,workers =, workers.OrderByDescending (w =祝辞,w.LastName);   ,,,,,,,,,休息;   ,,,,,,,case “last":   ,,,,,,,,,workers =, workers.OrderBy (w =祝辞,w.LastName);   ,,,,,,,,,休息;   ,,,,,,,默认值:   ,,,,,,,,,workers =, workers.OrderBy (w =祝辞,w.FirstName);   ,,,,,,,,,休息;   ,,,,,}   ,,,,,return 视图(workers.ToList ());   ,,,}   ,,}   }

第11行,指数行动的参数排序方式用来传递给控制器排序的信息.sortOrder有4个可能值。这4个值体现在17日到31日行的开关。例语句中。如果是first_desc则对FirstName用OrderByDescending倒序排列。如果是last_desc则对姓倒序排列。如果是去年则对LastName用OrderBy函数顺序排列。如果是空则对FirstName顺序排列。第13 - 14日行用Viewbag存储当前排列的相反排列字符串,用于在视图中生成链接。第15 - 16行,用Linq to实体从数据库中选取要排序的数据。第32行将排序好的数据以列表的形式传递给视图。

在对应的视图文件~ \ Views \企业\指数。cshtml中,修改其表头部分,代码如下。

& lt; tr>   ,,,& lt; th>   ,,,,,@Html.ActionLink (“First  Name",,“Index",, new  {=,, sortOrder  ViewBag.FirstNameSortParm })   ,,,& lt;/th>   ,,,& lt; th>   ,,,,,@Html.ActionLink (“Last  Name",,“Index",, new  {=,, sortOrder  ViewBag.LastNameSortParm })   ,,,& lt;/th>   ,,,& lt; th> @Html.DisplayNameFor (model =祝辞,model.Sex) & lt;/th>   ,,,& lt; th> @Html.DisplayNameFor (model =祝辞,model.Rating) & lt;/th>   & lt;/tr>

黄色的部分为修改后的代码。我们把以前纯文本的表头改成一个超链接,链接的参数从ViewBag中获得。点击链接可以获得与当前排序相反的排序效果。

,通过浏览器查看此页面。之后点击LastName链接,则按照上面代码会生成如下页面:

,  MVC5 + EF6 + Bootstrap3怎么实现排序,搜索,分页功能

参数排序方式为去年则这个表按LastName顺序排列。

<强>搜索

一般查询页面都会有搜索功能帮助我们查看自己想要的页面。下面我们就来实现这个功能。

还是从控制器开始,指数行动的代码写成如下形式:

public  ViewResult 指数(string 排序方式,string  searchString)   {   ViewBag.FirstNameSortParm 才能=,String.IsNullOrEmpty(排序方式),?,“first_desc",:,“,“;   ViewBag.LastNameSortParm 才能=,sortOrder ==,“last", ?,“last_desc",:,“last";   var 才能;workers =,得到w  db.Workers拷贝   ,,,,,,,select  w;   if 才能;(! string.IsNullOrEmpty (searchString))   {才能   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

MVC5 + EF6 + Bootstrap3怎么实现排序,搜索,分页功能