ایجاد jQGrid با استفاده از Entity Framework در MVC
جمعه 8 مرداد 1395در این مقاله میخواهیم با استفاده از jqGrid یک GridView که قابلیت های زیادی دارد ایجاد کنیم و داده ها را با استفاده از Entity Framework درون آن قرار دهیم.
نمایش دادن داده های درون یک Gridview نیاز هر برنامه ای است . ما برای مدیرت کاربر ها نیاز به مرتب سازی ، صفحه بندی ، فیلتر ، و جستجو آنها داریم .jqGrid یک جدول سمت Client بسیار سبک است که ما میتوانیم از از آن به راحتی استفاده کنیم و این جدول از قابلیت های خوبی برخوردار است .ما قصد داریم در این مقاله یک jQGrid در ASP.NET MVC ایجاد کنیم و داده ها را درون آن قرار دهیم .حال یک بانک اطلاعاتی به نام jQGrid را پیاده سازی میکنیم که شامل یک جدول به نام StudentInfo است و اطلاعات مورد نظر را وارد میکنیم.
کد زیر جدول StudentInfo برای شما ایجاد میکند کافی است بر روی بانک اطلاعاتی خود کلیک راست کرده و گزینه NewQuery را انتخاب کنید و کد زیر را در داخل آن اجرا نمایید.
1. USE [jQGrid] 2. GO 3. 4. 5. SET ANSI_NULLS ON 6. GO 7. 8. SET QUOTED_IDENTIFIER ON 9. GO 10. 11. CREATE TABLE [dbo].[StudentInfo]( 12. [ID] [int] NOT NULL, 13. [Name] [nvarchar](50) NULL, 14. [Family] [nvarchar](50) NULL, 15. [Email] [nvarchar](50) NULL, 16. [City] [nvarchar](50) NULL, 17. CONSTRAINT [PK_StudentInfo] PRIMARY KEY CLUSTERED 18. ( 19. [ID] ASC 20. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 21. ) ON [PRIMARY] 22. 23. GO
فیلد های جدول را مانند تصویر زیر پر میکنیم:

برای نمایش داده ها در GridView یک stored procedure به نام “GetStudentInfo“ ایجاد میکنیم.
1. USE [jQGrid] 2. GO 3. 4. SET ANSI_NULLS ON 5. GO 6. SET QUOTED_IDENTIFIER ON 7. GO 8. 9. CREATE PROCEDURE [dbo].[GetStudentInfo] 10. 11. AS 12. BEGIN 13. 14. SET NOCOUNT ON; 15. 16. SELECT ID, Name, Family, Email, City 17. from StudentInfo 18. END
برای تست کردن stored procedure از کد زیر استفاده می کنیم :
DECLARE @return_value int EXEC @return_value = GetStudentInfo SELECT 'Return Value' =@return_value GO

درحال حاضر بانک اطلاعاتی ما آماده است.
یک پروژه ASP.NET MVC Web Application. ایجاد میکنیم.

MVC را انتخاب میکنیم .

درمرحله بعد ما میخواهیم از Entity framework استفاده کنیم که" GetStudentInfo" stored procedure برای ذخیره سازی داده ها در جدول StudentInfo است و با استفاده از Entity framework آن هارا باز یابی می کند.ما برای استفاده از framework Entity باید یک Edmx ایجادکنیم و برای ایجاد آن بر روی پروژه کلیک راست کنید. add new را انتخاب کنید.
مانند تصویر زیر:

در مرحله بعدی Generate from database را انتخاب کنید.

حال مشاهده میکنید که Edmx ساخته شده:

درمرحله بعد jQGrid را از nuget دریافت میکنیم.
تصویر زیر را مشاهده کنید:

به طور خودکار HomeControler view index را نمایش می دهد و ما میخواهیم یگ Action متفاوت فراخوانی کنیم که در ViewIndex بارگذاری می شود .
1. public ActionResult Index()
2. {
3.
4. return View();
5. }
حال ما Action متفاوتی داریم که داده ها با استفاده از Entity framework دریافت میکند .
کد زیر را مشاهده کنید :
public ActionResult GetJqGridData()
{
jQGridEntities s = new jQGridEntities();
var studentList = s.GetStudentInfo();
var JsonData = new
{
rows = studentList
};
return Json(JsonData, JsonRequestBehavior.AllowGet);
}
برای نمایش GridView ، یک Table با ID به نام studentGrid در نظر گرفته شده و همچنین یک div با ID به نام studentGridPage برای صفحه بندی آن قرار داده ایم . ودر آخر فایل های jQGrid را به صفحه اضافه می کنیم .
Index.cshtml
1. <div>
2. <table id="studentGrid"></table>
3. <div id="studentGridPager"></div>
4. </div>
5. @section scripts{
6. <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
7. <link href="~/Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" />
8. <script src="~/Scripts/jquery-ui-1.10.4.js"></script>
9. <script src="~/Scripts/i18n/grid.locale-en.js"></script>
10. <script src="~/Scripts/jquery.jqGrid.min.js"></script>
11. <script src="~/Scripts/script.js"></script>
12. }
هنگامی که فایل script.js در صفحه بارگذاری شود Action GetJqGridData فراخوانی شده و داده ها درون جدول قرار میگیرند.
Script.js
$(function ()
{
$("#studentGrid").jqGrid
({
url: "/Home/GetJqGridData",
datatype: 'json',
mtype: 'Get',
colNames: ['شماره', 'نام','نام خانوادگی', 'آدرس','استان'],
colModel: [
{ key: true, name: 'ID', index: 'ID', sortable: true },
{ key: false, name: 'Name', index: 'Name', sortable: true },
{ key: false, name: 'Family', index: 'Family', sortable: true },
{ key: false, name: 'Email', index: 'Email', sortable: true },
{ key: false, name: 'City', index: 'City', editable: true }
],
pager: jQuery('#studentGridPager'),
rowNum: 3,
rowList: [10, 20, 30, 40, 50],
height: '100%',
viewrecords: true,
caption: 'Students Records',
emptyrecords: 'No Students Records are Available to Display',
jsonReader:
{
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
},
autowidth: true,
multiselect: false,
}).navGrid('#studentGridPager',
{
edit: true, add: true, del: true, search: true,
searchtext: "Search Student", refresh: true
},
{
zIndex: 100,
caption: "Search Students",
sopt: ['cn']
});
});
خروجی برنامه را مشاهده کنید:
jqGrid امکانات زیادی دارد که حتی میتوان حذف ، ویرایش ، افزودن ، داده ها را انجام دهید .
آموزش asp.net mvc
- ASP.net MVC
- 2k بازدید
- 4 تشکر