使用jqgrid的C#/asp.net mvc开发者的福音 jqgrid-asp.net-mvc
你是否使用jqgrid?
你是否想在C#/asp.net mvc中使用jqgrid?
那你很可能曾经为了分析jqgrid的request url用fiddler忙活了2个小时。(如果你要使用jqgrid的search功能的话)
那你很可能为了jqgrid的CRUD和search功能写了几百行C#代码。还不确定有没有bug。
如果你有如上的痛苦经历,那么 jqgrid-asp.net-mvc就是你的福音拉。
jqgrid-asp.net-mvc是一个host在github的C#开源项目。它在github的地址是https://github.com/weiminye/jqgrid-asp.net-mvc
jqgrid-asp.net-mvc的口号是“写最少的代码去使用jqgrid”
使用jqgrid-asp.net-mvc有如下好处,从而能够节省你至少8小时的工作时间和减少bug:
没使用jqgrid-asp.net-mvc | 使用jqgrid-asp.net-mvc后 | 节省了你的时间 |
---|---|---|
你要花时间用fiddler分析jqgrid的request url | 不需要花时间用fiddler分析jqgrid的request url | 2个小时 |
你要写很多的与jqgrid相关的C#代码 | 马上节省了至少500行代码 | 6个小时 |
如果jqgrid更新了,你也要跟着更新你的代码 | 你不需要更新你的代码,只需要更新jqgrid asp.net mvc .dll引用 | 不可计数 |
因为你的代码只汇聚了你一个人的经验可能会导致你所不知道的bug | jqgrid asp.net mvc是个开源项目,所以能汇聚全世界码农的经验,从而尽量减少bug | 不可计数 |
说完了为什么要使用jqgrid asp.net mvc和使用jqgrid asp.net mvc的好处外。
下面说说如何使用jqgrid asp.net mvc。
使用jqgrid asp.net mvc很简单,就如下几个步骤:
- 首先,去jqgrid asp.net mvc的github站点 https://github.com/weiminye/jqgrid-asp.net-mvc下载源代码到本地进行编译
- 编译通过后,打开jqgrid-asp.net-mvc\jqgrid-asp.net-mvc\bin\Debug目录
- 添加jqgrid-asp.net-mvc.dll到你的asp.net mvc项目中. 注意: 为了让全世界更多开发者把jqgrid asp.net mvc变得更好,jqgrid asp.net mvc不会在NuGet上host dll,所以只能通过下载源代码编译的方式来获得dll。直到有一天,jqgrid asp.net mvc觉得已经做得足够好了,可以出来见人了,可以被人摧残了,就会host在NuGet上。
- 打开你要使用JqGrid的controller类.
- 在文件头添加如下引用:
using jqgrid_asp.net_mvc;
- 按照如下格式写你要被JqGrid在JavaScript中调用的read和search方法。注意:不要修改方法中的参数名
1 #region jqgrid read and search
2
3 public ActionResult IndexJsonList(bool _search, string nd, int? rows, int? page, string sidx, string sord, jqgrid_asp.net_mvc.Filter filters)
4 {
5 return JqGrid.Load(
6 db.Persons, //替换成你自己的业务逻辑代码
7 d => d.FirstName,//替换成你自己的业务逻辑代码
8 s => new //替换成你自己的业务逻辑代码
9 {
10 s.ID,
11 s.FirstName,
12 s.LastName,
13 s.City,
14 s.Zip,
15
16 }, rows, page, _search, ref filters);
17
18 }
19
20 #endregion - 按照如下格式写你要被JqGrid在JavaScript中调用的Update方法。注意:不要修改方法中的参数名
1 public ActionResult UpdateForJqGrid(Person person, string oper)
2 {
3 return JqGrid.UpdateForJqGrid(person, oper, AddPerson, EditPerson, DeletePerson);
4 } - 按照如下格式写你自己的添加、修改、删除业务逻辑方法。
1 private ActionResult AddPerson(Person person)
2 {
3 //替换成你自己的业务逻辑代码
4 var newpersonentity = new Person();
5 newpersonentity.FirstName = person.FirstName;
6 newpersonentity.LastName = person.LastName;
7 newpersonentity.City = person.City;
8 newpersonentity.Zip = person.Zip;
9
10 db.Persons.Add(newpersonentity);
11 db.SaveChanges();
12
13 return Content("Add success");
14 }
15
16 private ActionResult EditPerson(Person person)
17 {
18 //替换成你自己的业务逻辑代码
19 var editpersonentity = db.Persons.Single(p => p.ID == person.ID);
20 editpersonentity.FirstName = person.FirstName;
21 editpersonentity.LastName = person.LastName;
22 editpersonentity.City = person.City;
23 editpersonentity.Zip = person.Zip;
24
25 db.SaveChanges();
26
27 return Content("Update success");
28
29 }
30 private ActionResult DeletePerson(Person person)
31 {
32 //替换成你自己的业务逻辑代码
33 var deletepersonentity = db.Persons.Single(p => p.ID == person.ID);
34 db.Persons.Remove(deletepersonentity);
35
36 db.SaveChanges();
37
38 return Content("Delete success");
39 } - 编译你的解决方案。你就可以检验一下你使用jqgrid asp.net mvc的成果了。
如果以上步骤你还看不明白,可以参考jqgrid-asp.net-mvc.demo.web下面的Controllers\HomeController.cs 文件。
看,就这么简单!是否实现了jqgrid-asp.net-mvc的口号 - “写最少的代码去使用jqgrid” 呢?
如果你对jqgrid-asp.net-mvc有什么问题,有什么不满,有什么意见的话,就在这篇文章 (http://www.cnblogs.com/adalovelacer/p/4176132.html)这里留言吧,我会解答你的。因为我知道你的 意见会令jqgrid-asp.net-mvc变得更好,欢迎拍砖!
哦?是否奇怪为什么我能够解答你?因为我就是jqgrid-asp.net-mvc的创建者阿! :)
首先,我作为一个2010年就人肉FQ去了硅谷的码农,我做开源项目当然是用英文为第一语言。但是!我始终记得,我是一个中国人,很多年前,我也和 大家一样,在广州,在北京,苦苦挣扎,我还记得那时候因为英文不好,遇到问题只能够找中文资料的痛苦。所以我这次专门跑来cnblogs为jqgrid- asp.net-mvc建立一个中文教程和页面,就是希望大家不要再有当年我一样的痛苦了。我希望祖国的码农们也能和美帝的码农同步共享jqgrid- asp.net-mvc的进步。
所以如果你觉得jqgrid-asp.net-mvc很赞,请支持我,去jqgrid-asp.net-mvc的github上https://github.com/weiminye/jqgrid-asp.net-mvc按照如下那样点个赞,就是点那个Star星星
你也可以到我的Github https://github.com/weiminye 上follow我,这样我一更新代码你就能看到。我会有更多的开源项目,jqgrid-asp.net-mvc只是我第一个开源项目而已。
当然更希望你能够捐献你的代码让jqgrid-asp.net-mvc变得更好!
使用jqgrid的C#/asp.net mvc开发者的福音 jqgrid-asp.net-mvc的更多相关文章
- ASP.NET Core开发者指南
ASP.NET Core开发者指南 2019年ASP.NET Core开发者指南: 你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.“ ...
- ASP.NET Core开发者指南(转发)
ASP.NET Core开发者指南 2019年ASP.NET Core开发者指南: 你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.& ...
- ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览
原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...
- 【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议
本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)
lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- ASP.NET Core开发者指南()
你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,我把这张图作为建议 ...
- ASP.NET开发实战——(五)ASP.NET MVC & 分层
上一篇文章简要说明了MVC所代表的含义并提供了详细的项目及其控制器.视图等内容的创建步骤,最终完成了一个简单ASP.NET MVC程序. 注:MVC与ASP.NET MVC不相等,MVC是一种开发模式 ...
随机推荐
- ADB pm 命令
usage: pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_TER] pm list permission-grou ...
- C#串口通信—传输文件测试
说明:该程序可能不具备实用性,仅测试用. 一.使用虚拟串口工具VSPD虚拟两个串口COM1和COM2 二.约定 占一个字节,代码如下: using System; using System.Colle ...
- MVC上传文件
ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...
- C#反射技术概念作用和要点
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...
- Nancy 学习-进阶部分 继续跨平台
前面两篇,讲解Nancy的基础,及Nancy自宿主和视图引擎. 现在来学习一些进阶部分. Bootstrapper Bootstrapper 就相当于 asp.net 的Global.asax . 我 ...
- 局部(或全局)设置<a>标签的target属性
对于超链接<a>标签,target属性的设置是比较关键的,在不同的用户场景下选用适合的新页面载入方式,可以大大的提高访客的体验感.我们一般对target的设置可以挨个来,但 ...
- 炉石传说 C# 开发笔记(6月底小结)
炉石传说的开发,已经有30个工作日了. 关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性. 原来构思的时候,对于法术效果没有充分的理解,所 ...
- 【JSP手记】--jsp里面session.getAttribute("×××")在java中的表示
JSP里面的 <%=session.getAttribute("×××")%> 与java等价于 request.getSession().get ...
- Scalaz(29)- Free :Coyoneda - Functor for free
很多时候我们会遇到一些高阶类型F[_],但又无法实现它的map函数,也就是虽然形似但F不可能成为Functor.看看下面的例子: trait Interact[A] case class Ask(pr ...
- tp5页面输出时,搜索后跳转下一页的处理
tp5页面输出时,搜索功能在跳转下一页时,如果不做任何处理,会返回原有是第二页输出的数据.为了保证跳转下一页时输出的是搜索到的数据,做以下处理. (要根据自己的搜索字段进行适当修改) 页面js代码,给 ...