jQuery Grid 与 ASP.NET GridView 的比较

随着Web开发的不断进步,客户端控件的使用在减轻服务器负担方面发挥了重要作用。jQuery作为前端开发中一个强大的工具库,已经使得对服务器控件的依赖大大减少。在ASP.NET中,GridView控件曾是数据展示的首选,但随着开源的jQuery Grid的出现,开发者们开始探索新的实现方式。这些新的Grid控件通常使用JavaScript、jQuery、JSON、CSS和HTML,这些技术对于程序员来说并不陌生,因此他们无需学习新的插件即可实现这些Grid。

基于JSON的Grid控件在客户端执行以下操作:

  • 基于JSON的搜索
  • 排序
  • 分页(包括第一页、最后一页、上一页、下一页、当前页码显示和总页数显示)
  • 打开新行以添加或编辑数据
  • 取消/添加新行或取消编辑现有行
  • 对必填字段和数据类型及长度的验证

同时,基于JSON的Grid控件在客户端和服务器端执行以下操作:

  • 浏览器通过jQuery AJAX请求仅发送所需的输入,并从MVC控制器获取更新后的数据作为JSON格式。
  • 在删除操作中,删除状态以JSON格式在浏览器中接收。

然后,JSON数据会在浏览器中现有的完整JSON数据中更新。通过jQuery重新创建标记。

使用代码

要运行源代码,需要以下软件平台:

  • MVC4与Visual Studio 2012
  • MySQL 5.2.47 CE Revision 10398或更高版本
  • 从Nuget获取的Entity Framework
  • 从Nuget获取的NewtonSoft.Json
  • 下载并自定义的jquery.validator-0.3.6.min.js

通过创建用于所有操作(插入、更新、取消、删除和在Grid中添加新数据行)的部分视图开始工作,但后来创建了一个基于JSON的Grid。所有代码都包含在源代码中。

有趣之处

在寻找使用MySQL与Entity Framework的智能技术时,收到了使用市场上可用的开源jQuery Grids的要求。在想,为什么应该学习插件的特性,而不是创建自己的Grid来操作JSON数据并完全控制代码呢?最终,找到了解决方案。这是一个开始,不久将会有更多的程序员友好且高效的插件可用。

实现示例

以下是使用jQuery Grid替代ASP.NET GridView的一个简单示例。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQuery Grid 示例</title> <link rel="stylesheet" href="path/to/jquery-ui.css"> <script src="path/to/jquery.min.js"></script> <script src="path/to/jquery-ui.min.js"></script> </head> <body> <table id="grid"> </table> <script> $(document).ready(function () { $("#grid").jqGrid({ url: 'path/to/data.json', datatype: 'json', mtype: 'GET', colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes'], colModel: [ { name: 'id', index: 'id', width: 55 }, { name: 'invdate', index: 'invdate', width: 90 }, { name: 'name', index: 'name', width: 100 }, { name: 'amount', index: 'amount', width: 80, align: "right" }, { name: 'tax', index: 'tax', width: 80, align: "right" }, { name: 'total', index: 'total', width: 80, align: "right" }, { name: 'note', index: 'note', width: 150, sortable: false } ], rowNum: 10, rowList: [10, 20, 30], pager: '#pager', sortname: 'id', viewrecords: true, sortorder: "desc", editurl: 'path/to/edit', caption: "jQuery Grid 示例" }); }); </script> </body> </html>
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485