標籤:
你是否使用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