你是否使用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很简单,就如下几个步骤:

  1. 首先,去jqgrid asp.net mvc的github站点 https://github.com/weiminye/jqgrid-asp.net-mvc下载源代码到本地进行编译
  2. 编译通过后,打开jqgrid-asp.net-mvc\jqgrid-asp.net-mvc\bin\Debug目录
  3. 添加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上。
  4. 打开你要使用JqGrid的controller类.
  5. 在文件头添加如下引用:
    using jqgrid_asp.net_mvc;
  6. 按照如下格式写你要被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
  7. 按照如下格式写你要被JqGrid在JavaScript中调用的Update方法。注意:不要修改方法中的参数名
    1 public ActionResult UpdateForJqGrid(Person person, string oper)
    2 {
    3 return JqGrid.UpdateForJqGrid(person, oper, AddPerson, EditPerson, DeletePerson);
    4 }
  8. 按照如下格式写你自己的添加、修改、删除业务逻辑方法。
     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 }
  9. 编译你的解决方案。你就可以检验一下你使用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的更多相关文章

  1. ASP.NET Core开发者指南

    ASP.NET Core开发者指南 2019年ASP.NET Core开发者指南: 你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.“ ...

  2. ASP.NET Core开发者指南(转发)

    ASP.NET Core开发者指南 2019年ASP.NET Core开发者指南: 你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.& ...

  3. ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览

    原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...

  4. 【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议

    本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧 ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  6. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  8. ASP.NET Core开发者指南()

    你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,我把这张图作为建议 ...

  9. ASP.NET开发实战——(五)ASP.NET MVC & 分层

    上一篇文章简要说明了MVC所代表的含义并提供了详细的项目及其控制器.视图等内容的创建步骤,最终完成了一个简单ASP.NET MVC程序. 注:MVC与ASP.NET MVC不相等,MVC是一种开发模式 ...

随机推荐

  1. 基于WinCE的JSON 类库 源码

    基于WinCE的JSON 类库,可以将对象序列化成字符串和文件. 提示,其在反序列化时有一个BUG: 如果对象的某个字段值为 null,将其序列化成字符串,然后将该字符串反序列化成对象时会报异常. 这 ...

  2. SQL中 将同一个表中的A列更新到B列,B列更新到A列

    有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE ...

  3. C# 中反射获取某类的子类和根据类型名动态创建对象

    有时候,为了快速批量处理已经实现某个基类或者某个接口的子类,需要通过反射的方式获取到他们的类类型(Type),然后再通过 1 Activator.CreateInstance(objType); 或者 ...

  4. 不需要写代码,文件夹右键cmd定位指定目录

    引子 这篇文章其实本来不是这样的,因为我用C#的代码实现了一个程序,后面才突然发现,我太傻太天真了,明明不需要写程序和写代码的,结果自己把自己二住了. 我们来看看效果图. 由于,我自己的原因,这个功能 ...

  5. div浮动在页面底部

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Pydev Debugger not working with breakpoints

    I have a simple test module: print("fish")print("sticks")It runs pretty fast as ...

  7. (旧)子数涵数·C语言——hello world

    一说起hello world想必你们就知道我要干什么了,毕竟hello world基本是每个高级语言的第一个案例. 好,切入正题,我们开始用C语言编写hello world! 一.打开C语言的IDE( ...

  8. python tornado websocket 多聊天室(返回消息给部分连接者)

    python tornado 构建多个聊天室, 多个聊天室之间相互独立, 实现服务器端将消息返回给相应的部分客户端! chatHome.py // 服务器端, 渲染主页 --> 聊天室建立web ...

  9. Yii2.0学习笔记:第一个页面Saying Hello

    Controller目录下创建TestController.php 复制下面代码,yii跟tp一样,全程命名空间 <?php namespace app\controllers; use yii ...

  10. Entity Framework 笔记(一)

    Entity Framework概述 EF是一个对象关系映射(ORM)框架,允许开发人员使用特定于域的对象关系型数据,开发人员通常不需要编写大量的数据访问代码.使用EF,开发者可以利用LINQ进行查询 ...