ASP.NET MVC3.0+ JqGrid+Unit Of Work+ Repository/ EF 4.1 CRUD應用 (多層結構)
ManageContacts.cs
public class ManageContacts { public IEnumerable<Contact> GetContacts() { IEnumerable<Contact> contacts; using (UnitOfWork unitOfWork = new UnitOfWork()) { contacts = unitOfWork.ContactRepository.GetAll(); } return contacts; } public bool AddContact(Contact contact) { using (UnitOfWork unitOfWork = new UnitOfWork()) { unitOfWork.ContactRepository.Add(contact); unitOfWork.Save(); } return true; } public bool UpdateContact(Contact contact, int id) { using (UnitOfWork unitOfWork = new UnitOfWork()) { var contactEntity = unitOfWork.ContactRepository.GetById(id); contactEntity.Title = contact.Title; contactEntity.FirstName = contact.FirstName; contactEntity.LastName = contact.LastName; contactEntity.ModifiedDate = DateTime.Now; unitOfWork.Save(); } return true; } public bool DeleteContact(int id) { using (UnitOfWork unitOfWork = new UnitOfWork()) { Contact contact = unitOfWork.ContactRepository.GetById(id); unitOfWork.ContactRepository.Delete(contact); unitOfWork.Save(); } return true; } public List<Contact> GetContactPaged(int page, int rows, out int totalCount) { List<Contact> contacts; using (UnitOfWork unitOfWork = new UnitOfWork()) { contacts = unitOfWork.ContactRepository.GetContactPaged (page, rows, out totalCount); } return contacts; } public Contact GetById(int id) { Contact contact; using (UnitOfWork unitOfWork = new UnitOfWork()) { contact = unitOfWork.ContactRepository.GetById(id); } return contact; } }
Controller
ASP.NET MVC Controller物件的職責是傳遞資料,獲取View物件(實現了IView介面的類),通知View物件顯示.
View物件的作用是顯示.雖然顯示的方法RenderView()是由Controller呼叫的,
但是Controller僅僅是一個"指揮官"的作用, 具體的顯示邏輯仍然在View物件中
GridDemoData()
:返回Json資料給JQgrid繫結PerformCRUDOperation()
: 處理使用者傳遞的操作
HomeController.cs
public ActionResult GridDemoData(int page, int rows, string search, string sidx, string sord) { var manageContacts = new ManageContacts(); int currentPage = Convert.ToInt32(page) - 1; int totalRecords = 0; var data = manageContacts.GetContactPaged (currentPage, rows, out totalRecords); var totalPages = (int)Math.Ceiling(totalRecords / (float)rows); var jsonData = new { total = totalPages, page, records = totalRecords, rows = ( from m in data select new { id = m.ContactID, cell = new object[] { m.Title, m.FirstName, m.LastName } }).ToArray() }; return Json(jsonData, JsonRequestBehavior.AllowGet); } public ActionResult PerformCRUDAction(Contact contact) { var manageContacts = new ManageContacts(); bool result = false; switch (Request.Form["oper"]) { case "add": contact.AddDate = DateTime.Now.Date; contact.ModifiedDate = DateTime.Now; result = manageContacts.AddContact(contact); break; case "edit": int id = Int32.Parse(Request.Form["id"]); result = manageContacts.UpdateContact(contact,id); break; case "del": id = Int32.Parse(Request.Form["id"]); result = manageContacts.DeleteContact(id); break; default: break; } return Json(result); }
View (UI Layer)
JqGrid Setup Requirements
The following code is used for JqGrid setup in site.master
.
<link href="<%= ResolveUrl("~/Content/themes/flick/ui.jqgrid.css") %>" rel="stylesheet"
type="text/css" />
Following HTML code need to be added in index.aspx for JqGrid
:<div id="myDiv" style="width: 100%"> <table id="grid" cellpadding="0" cellspacing="0"> </table> <div id="pager" name="pager" style="text-align: center;"> </div> </div>
Below is the JavaScript code for
JqGrid
in JqGridCRUD.js.var lastsel;
$(function () {
$("#grid").jqGrid({
colNames: ['Title', 'First Name', 'Last Name'],
colModel: [
{ name: 'Title', index: 'Title', sortable: false,
align: 'left', width: '200',
editable: true, edittype: 'text'
},
{ name: 'FirstName', index: 'FirstName', sortable: false,
align: 'left', width: '200',
editable: true, edittype: 'text'
},
{ name: 'LastName', index: 'LastName', sortable: false,
align: 'left', width: '200',
editable: true, edittype: 'text'
}
],
pager: jQuery('#pager'),
sortname: 'FirstName',
rowNum: 10,
rowList: [10, 20, 25],
sortorder: "",
height: 225,
viewrecords: true,
rownumbers: true,
caption: 'Contacts',
imgpath: '/Content/jqGridCss/smoothness/images',
width: 750,
url: "/Home/GridDemoData",
editurl: "/Home/PerformCRUDAction",
datatype: 'json',
mtype: 'GET',
onCellSelect: function (rowid, iCol, aData) {
if (rowid && rowid !== lastsel) {
if (lastsel)
jQuery('#grid').jqGrid('restoreRow', lastsel);
jQuery('#grid').jqGrid('editRow', rowid, true);
lastsel = rowid;
}
}
})
jQuery("#grid").jqGrid('navGrid', '#pager',
{ edit: false, add: true, del: true, search: false, refresh: true },
{ closeOnEscape: true, reloadAfterSubmit: true,
closeAfterEdit: true, left: 400, top: 300 },
{ closeOnEscape: true, reloadAfterSubmit: true,
closeAfterAdd: true, left: 450, top: 300, width: 520 },
{ closeOnEscape: true, reloadAfterSubmit: true, left: 450, top: 300 });
});
效果顯示
相關推薦
ASP.NET MVC3.0+ JqGrid+Unit Of Work+ Repository/ EF 4.1 CRUD應用 (多層結構)
ManageContacts.cs public class ManageContacts { public IEnumerable<Contact> GetContacts() { IEnumerable<Contact&
經典ASP NET MVC3 0入門詳解
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
ASP.NET Core 中文文件 第三章 原理(1)應用程式啟動
ASP.NET Core 為你的應用程式提供了處理每個請求的完整控制。Startup 類是應用程式的入口(entry point),這個類可以設定配置(configuration)並且將應用程式將要使用的服務連線起來。開發人員可以在 Startup 類中配置請求管道,該管道將用於處理應用程式的所有請求。 章
ASP.NET Core 中文文件 第二章 指南(4.1)ASP.NET Core MVC 與 Visual Studio 入門
這篇教程將告訴你如何使用 Visual Studio 2015 構建一個 ASP.NET Core MVC Web 應用程式的基礎知識。 安裝 Visual Studio 和 .NET Core 安裝 Visual Studio Community 2015。選擇 Community 下載並執行預設安裝
ABP(現代ASP.NET樣板開發框架)系列之12、ABP領域層——工作單元(Unit Of work)
基於DDD的現代ASP.NET開發框架--ABP系列之12、ABP領域層——工作單元(Unit Of work) ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 通用連線和事務管理方法 連線和事務管理是使用資料庫的應用程
Asp.Net MVC3 簡單入門詳解過濾器Filter
添加 重復 權限 組件 再次 ace text ext 開發 前言 在開發大項目的時候總會有相關的AOP面向切面編程的組件,而MVC(特指:Asp.Net MVC,以下皆同)項目中不想讓MVC開發人員去關心和寫類似身份驗證,日誌,異常,行為截取等這部分重復的代碼,那我們可以
jQuery Uploadify在ASP.NET MVC3中的使用
插件 pts type ade exist on() -- ssi margin 1、Uploadify簡介 Uploadify是基於jQuery的一種上傳插件,支持多文件、帶進度條顯示上傳,在項目開發中常被使用。 Uploadify官方網址
WebApi遷移ASP.NET Core2.0
content .config true 進入 服務 設置 網關 系統 win WebApi遷移ASP.NET Core2.0 一步一步帶你做WebApi遷移ASP.NET Core2.0 隨著ASP.NET Core 2.0發布之後,原先運行在Windows II
Asp.NET Core2.0 項目實戰入門視頻課程_完整版
第5章 frame 封裝 今天 使用 結束 技巧 標題 技術分享 END OR START? 看到這個標題,你開不開心,激不激動呢? 沒錯,.net core的入門課程已經完畢了。52ABP.School項目從11月19日,第一章視頻的試錄制,到今天完整版出爐,離不開各位的
asp.net core1.x/asp.net core2.0中如何加載多個配置文件
加載 自己 團隊 多配置文件 做的 ted 文章 pos 簡單 寫這篇文章,來簡單的談一下,asp.net core中,如何加載多配置文件,如有錯誤請斧正。 在1.x的時候,我們是自己配置 WebHostBuilder而在2.0的時候,ef core團隊,將配置寫到了
用VSCode開發一個asp.net core2.0+angular5項目(5): Angular5+asp.net core 2.0 web api文件上傳
owb bus sed loaded runt ace created one 做了 第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.
ABAP術語-LUW (Logical Unit of Work)
從數據 ble commit entire 工作 unit gic https view LUW (Logical Unit of Work) 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/04/1089637.h
在asp.net mvc3 中,在controller中使用HttpPostedFileBase file 引數獲取上傳的檔案,檔案路徑問題
轉載:https://zhidao.baidu.com/question/444203596.html 在asp.net mvc3 中,在controller中使用HttpPostedFileBase file 引數獲取上傳的檔案,開始的時候file.filename獲取的為檔案的名稱,後來
在asp.net mvc3 中,在controller中使用HttpPostedFileBase file 參數獲取上傳的文件,文件路徑問題
amp nbsp 指點 不包含 index 之前 eas www .com 轉載:https://zhidao.baidu.com/question/444203596.html 在asp.net mvc3 中,在controller中使用HttpPostedFileB
asp.net 2.0 分析器錯誤訊息: 檔案.aspx.cs”不存在錯誤
布webapplication時後老是報告分析器錯誤訊息: 檔案.aspx.cs”不存在錯誤,差點抓狂,後來在網上搜到原因是: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="{0}" Inherits="{1}" %&g
Asp.net Core2.0 快取 MemoryCache 和 Redis
自從使用Asp.net Core2.0 以來,不停摸索,查閱資料,這方面的資料是真的少,因此,在前人的基礎上,摸索出了Asp.net Core2.0 快取 MemoryCache 和 Redis的用法,並實現了簡單的封裝 那麼,先給出幾個參考
將asp.net core2.0專案部署在IIS上執行
與ASP.NET時代不同,ASP.NET Core不再是由IIS工作程序(w3wp.exe)託管,而是獨立執行的。它獨立執行在控制檯應用程式中,並通過dotnet執行時命令呼叫。它並沒有被載入到IIS工作程序中,但是IIS卻載入了名為AspNetCoreModule的
3、ASP.Net Core2.0值Filter
Asp.Net Core的filter總共有5種,它們分別是Authorization Filter(授權過濾器)、Resource Filter(資源過濾器),Action Filter、Exception Filter(異常過濾器)和Result Filt
【翻譯】asp.net core2.0中的token認證
原文地址:https://developer.okta.com/blog/2018/03/23/token-authentication-aspnetcore-complete-guide token認證在最近幾年正在成為一個流行的主題,特別是隨著移動應用和js應用不斷的獲得關注。像OAuth 2.0和Op
asp.net MVC3 從客戶端(&)中檢測到有潛在危險的 Request.Path 值。
A連結(url:http://localhost:56482/Sys/questionEdit/15&firstEdit=yes)開啟,發生錯誤,提示“從客戶端(&)中檢測到有潛在危險的 Request.Path 值。” 解決辦法: 步驟1、在Global檔