在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

  • 时间:
  • 浏览:1
  • 来源:5分3DAPP下载_5分3DAPP官网

在为数据表换成了脚本和 CSS 另三个 ,大伙儿须要在总体布局中换成它们,默认清况 下, _Layout.cshtml 趋于稳定 Views >> Shared 中,_ViewStart.cshtml 也默认趋于稳定这里。

本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/1875388,如需转载请自行联系原作者

为了做到这某些,请打开 web.config 并为数据库提供连接字符串。在配置文件中,我能 发现下面配置节点中的连接字符串,你须要在节点中根据你的系统来修改连接字符串。

在服务器端实现表格的过滤、分页和排序等功能,都都都可不还可不能不能减少客户端数据处里的任务量,方便更好更快的加载并显示数据。表格控件是项目开发中突然 用到的控件,其中以性能著称的是FlexGrid表格控件,这是一款轻量级的高性能表格控件,加载和滚动速度比竞争对手快10倍以上,能提供丰沛 的功能集,而不膨胀核心控件。

请在搜索结果中选者正确的包并安装它。

现在从处里方案资源管理器跳转到模型文件夹,并打开 IdentityModels.cs 文件。大伙儿将在数据库上下文中为 Asset 表换成三个 属性,你你是什么 属性由于成为 Asset 表的实体框架代表,用来创建脚本。在 ApplicationDbContext 类中换成新的属性:

我能 通过提供 IDataTablesRequest 来实现换成自定义的参数,你也须要重写它的 BindModel 和 MapAdditionalColumns 法子 。

安装包管理器默认是打开的,它会在你的处里方案中显示成已安装的 nugget 包,点击浏览按钮,否则搜索 JQuery DataTables 包,选者它并检查已安装了 JQuery DataTables 的项目处里方案。在大伙儿的案例里,大伙儿由于以每三个 需求的法子 将其安放进 GridExampleMVC web 中,否则点击安装按钮。

Visual Studio 由于提示算是要修改处里方案,你须要点击 Ok 来继续安装 JQuery DataTables 包。

绑定的好处之一是:由于业务须要,都可不还可不能不能 在请求中发送三个 自定义参数。

最后,大伙儿应用分页累积的功能,并检查用户选者的页面,默认会加载第一页,在这另三个 ,大伙儿由于通过 requestModel.Start 追踪用户点击的每三个 页面。requestModel.Length 由于告诉用户查看的页面有几次行数据,你你是什么 用户都可不还可不能不能 使用页面中的 combo 框来进行配置。

现在大伙儿须要安装用于创建表格的 JQuery DataTables,进入Tools >> NuGet Package Manager >> Manage Nuget Packages for Solution,并点击它。

在本文中,大伙儿由于学习如何实现服务器端的分页,搜索和排序功能。从长远来讲,这是并都是更好的法子 来应对数据集特别大的清况 。

这是附属在源代码上的三个 完整性的 SQL 脚本文件,都可不还可不能不能 用它使用简单的数据来创建数据库和表。

现在大伙儿另三个 结束安装 datatables.mvc5,点击 Tools >> NuGet Package Manager >> Manage Nuget Packages for Solution,并点击它。

以上是 ASP.NET identity 2.0 的默认实体框架设置,大伙儿通过为 Asset 表换成新的 DbSet 来扩展它。

大伙儿正在获取 Assets 的引用,以便都都都可不还可不能不能链接到实体框架请求数据,大伙儿都可不还可不能不能 通过 Count()函数来获取数据集表的数据数目,你你是什么 数据由于传递到 DataTablesResponse 构造函数中,成为行为法子 的最后一行。

为此,在 Index.cshtml 视图中换成一下代码:

现在,请在控制器中换成数据库上下文的属性,以便大伙儿恩我能 够在数据库中执行请求。

进入 Index.cshtml 文件并通过移除表单的 thead 和 tbody 元素来更新 HTML,更新 HTML 如下所示:

大伙儿正在使用实体框架来访问数据,但它都是强制性的,你都都可不还可不能不能不能 通过 ADO.Net 来实现,唯一须要做的,而是我从 DataTableResponse 实例行为中返回 JSON  , 由于在脚本中正选者义了行,数据表就会正确的显示数据。

前文中须要注意的是,所有通过插件实现的底部形态都是客户端的,这由于所有的数据都首先在页面载入,否则由插件来处里客户端搜索、分页和排序的数据。由于数据表都是特别大,这么 做是都可不还可不能不能 的;否则,由于数据表很大由于数据会随着应用的使用而不断增加,就会引起现象。由于另三个 的现象我觉得趋于稳定了,从长远来讲,你你是什么 创建表格法子 将都是三个 好选者。

安装包管理器默认是打开的,它会在你的处里方案中显示成已安装的 nugget 包,点击浏览按钮,否则搜索 DataTables.mvc5,选者它并检查我应该 安装你你是什么 包的项目处里方案。你你是什么 另三个 ,大伙儿另三个 结束在 GridExampleMVC Web 工程中安装 DataTables.mvc5,点进安装按钮。

在 nugget 包安装成功后,大伙儿须要在视图中引入 jQuery DataTables 的必要的 JS 和 CSS,为此,大伙儿须要注册 jQuery DataTables,请打开趋于稳定 App_Start 文件夹中的 BundleConfig.cs 文件并在 CSS 和 JS 文件的结尾处换成以下代码:

什么都有 ,大伙儿须要做的而是我检查用户算是在文本框中设定了搜索标准,否则检查所有列中算是符合标准的数据都返回了。

大伙儿由于在任何须要的控制器行为中,使用你你是什么 属性查询数据库。

大伙儿由于在 init 函数中编写了数据表初始化代码,在 init 函数中,大伙儿设置 serverSide 属性为 true,这也就告诉表格会在服务器端进行分页,过滤和排序,现在所有的数据无需立刻加载,而是我第一页数据会默认展示出来,更多的数据会当用户触发时才加载,处里的属性会在检索行为中显示你你是什么 加载过程。由于我应该 在数据加载时,显示另三个 的消息,都可不还可不能不能 将它默认清况 设为 false,接下来,大伙儿定义数据表的回调行为,在大伙儿通过行属性指定了须要展示的行另三个 ,lengthMenu 则会用于显示每页数据的数目。当写入 document.ready 文件时,assetListVM.init( ) 函数由于被调用。

现在,在控制器文件夹中换成三个 空的名为 AssetController 的控制器,你你是什么 控制器件将用于所有 Asset 的相关工作。

在前一篇文章《【初学者指南】在ASP.NET MVC 5中创建GridView》中,大伙儿学习了如何在 ASP.NET MVC 中实现 GridView,类式于 ASP.NET web 表单的功能。通过前文,大伙儿由于了解到使用 jQuery 插件的数据表都可不还可不能不能 很容易地实现具有搜索、排序和分页等重要功能的表格。

在模型文件夹中,创建三个 名为 Asset 的新类:

现在 build 你你是什么 工程并在浏览中运行,就都可不还可不能不能 查看中有 服务器端过滤、分页和排序的 GridView 了。

现在让大伙儿创建文章中会用到的数据库和表,打开 SQL Management Studio 并运行以下脚本:

在完成安装另三个 ,进入 AssetController,编写 Get 行为的实现代码:

在模板页面,选者 MVC,由于编写了单元测试,请先做检查,否则点击选者。

由于完成了包的安装,你由于在工程中看到以下引用界面:

大伙儿的工程都是用基本的功能创建的。现在,大伙儿另三个 结束创建数据库上下文类,你你是什么 类由于被Data Access实体框架使用。

在写控制器代码另三个 ,大伙儿须要为实体框架配置连接字符串,以便在操作数据库时来连接数据库。否则,大伙儿的连接字符串应该被指定给三个 有效的数据源,以便大伙儿在运行时应用无需被打断。

首先,大伙儿须要从 NuGet 包管理器中安装 datatables.mvc5。这是 Stefan Nuxoll 实现的绑定在控制器上的数据集模型。大伙儿为那先 须要你你是什么 包?这由于绑定由于提供三个 附着在控制器上的强类型的模型,这将促进大伙儿处里读取请求参数,也会将大伙儿从请求的参数类型转换中解救出来。请求对象中的所有参数传递都都是安全类型的,什么都有 大伙儿须要手动的将它们转换到目的类型,这也将促进开发人员专注于业务逻辑,而无需突然 考虑 HTTP 参数,检查参数、转化参数。

现在,创建三个 新的 ASP.NET MVC 5 Web 应用进程。打开 Visual Studio 2015,点击文件>>新建>>项目。

大伙儿由于修改前文中的源代码,现在就另三个 结束吧!

接着,大伙儿将在 AssetController 中编写 Get 行为的代码。首先大伙儿须要引用 System.Linq.Dynamic,以便在行为中都可不还可不能不能 使用动态链接法子 。再一次进入 NuGet 包管理器搜索 System.Linq.Dynamic,并在项目中安装它。

大伙儿删除了表单的 head 和 body 元素,由于那先 会通过数据表插件自身生成。现在大伙儿须要升级 jQuery 数据表初始化,以便它都都都可不还可不能不能用过服务器端的 ajaxing 来加载数据。

首先,大伙儿须要为 Asset 表创建三个 模型,大伙儿由于使用你你是什么 模型通过 ORM 来恢复数据。

在这另三个 ,大伙儿都是了通过用户定义的标准来过滤数据的过滤逻辑了,以下的代码具有自注释:

在这另三个 ,大伙儿就实现了排序逻辑,排序列的信息附带在使用自定义模型绑定的模型中,使用 System.Linq.Dynamic 大伙儿都都都可不还可不能不能处里 if 和 switch 语句,大伙儿将列迭代在用户请求的排序上,否则通过以下代码排列行:

从该对话框中,跳转到 Web,并选者 ASP.NET Web 应用进程项目,否则单击选者。

猜你喜欢

2017年上半年,创业投资领域有什么明显的趋势

动漫的很快发展为动漫衍生品创造了无限的市场空间,换成国家政策对动漫的扶持,未来的动漫行业必将创造新的经济的神话。动漫店不仅有新奇实用的动漫互近产品,还有时尚个性的动漫DIY创意

2020-03-22

性价比最高的千元手机是哪一款

推荐华为畅享9全网通标配版3GB+32GB,华为商城在售价格999元,手机产品属于快消电子产品,华为商城的电子产品价格也是会随着市场情况而有一定的调价优惠,最终以华为商城页面价

2020-03-22

ye6fqlcefaxa2的主页

TA还没法发布过内容~暂无文章:990丨粉丝:4405丨话题:0云栖直播暂未提供你关注的阿里云!文章:416丨粉丝:5222丨话题:7

2020-03-22

2019年上市的所有手机都有什么型号

展开完整性为你推荐:有点硬推荐你对你是什么回答的评价是?你对你是什么回答的评价是?楼主你好,2019年上市的手机太大了哦,比如华为p200系列,vivox27,opporeno

2020-03-21

中国20大手机品牌排行榜。(销量)

您要能登录华为商城官网查看手机更多信息。1、屏幕:屏幕尺寸为6.53英寸,屏幕色彩为1670万色,分辨率为FHD+103000x2244像素,屏占比为88.07%,高清大屏,玩

2020-03-21