پرکردن و صفحه بندی GridView با انتخاب رکورد از DropDownList در MVC
دوشنبه 1 تیر 1394در این مقاله قصد داریم ، درباره پر کردن اطلاعات گرید ویو با انتخاب یک رکود در DropDownList توسط jQuery و همچنین صفحه بندی و فیلتر اطلاعات گرید ویو در Asp.Net.MVC آموزش بدهیم
سلام
برای شروع به کار بایستی یک بانک اطلاعاتی به نام TestDB و یک جدول به نام EmployeeTeam ایجاد کنیم.
Create DataBase TestDB
GO
Use TestDB
GO
CREATE TABLE [dbo].[EmployeeTeam](
[Employee_ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[Manager_ID] [int] NULL,
[Email] [nvarchar](50) NULL,
[Mobile] [nvarchar](50) NULL,
[Country] [nvarchar](50) NULL,
[IsManager] [bit] NULL,
CONSTRAINT [PK_EmployeeTeam] PRIMARY KEY CLUSTERED
(
[Employee_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
و شروع به ثبت داده در بانک اطلاعاتی میکنیم

همان طور که مشاهده میکنید در ستون Manager_ID، آیدی مدیر را باید درج کرد که اطلاعات گرید بر اساس آیدی مدیر پر میشود و همچنین فیلد IsManager باید برای نمایش در گرید برابر با True قراردهیم
حال ویژوال استادیو 2012 را بازکنید و یک پروژه از نوع Asp.Net.MVC ایجاد میکنیم.


حال برای استفاده از jquery در ویژوال استادیو 2012 کافی است روی Solution Explorer راست کلیک کرده ودر قسمت Add>Manage Nuget package را انتخاب کنید و در قسمت جستجو ،jquery را جستجو کنید

برای اضافه کردن بانک اطلاعاتی به برنامه روی Solution Explorer راست کلیک کرده ودر Add>NewItem>ADo. entity data model را انتخاب میکنیم
(در پایین تمام مراحل را با عکس توضیح داده ایم)






و این نکته را هم خاطر نشان کنیم که بایستی در آخر یکبار برنامه را Bulid کنید.
حال روی Modelراست کلیک کرده ویک کلاس به نام Employee.cs ایجاد کنید و به صورت زیر آن را پر کنید
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVC_DropDown_and_GridView.Models
{
public class Employee
{
public List<SelectListItem> ManagerEmployeeList { get; set; }
public List<Employee> EmployeeTeamGrid { get; set; }
public int Employee_ID { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Country { get; set; }
public string Mobile { get; set; }
}
}

حال روی Controller راست کلیک کرده و یک کنترلر از نوع Empty به نام Employee ایجاد کنید
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVC_DropDown_and_GridView.Models;
namespace MVC_DropDown_and_GridView.Controllers
{
public class EmployeeController : Controller
{
//
// GET: /Employee/
private EmployeeDBEntities db = new EmployeeDBEntities();
public ActionResult Index()
{
Employee _model = new Employee();
var managerList = db.EmployeeTeam.ToList().Where(a => a.IsManager.Equals(true));
_model.ManagerEmployeeList = (from d in managerList
select new SelectListItem
{
Value = d.Employee_ID.ToString(),
Text = d.Name
}).ToList();
var qq = (from e in db.EmployeeTeam
select new Employee
{
Employee_ID = e.Employee_ID,
Name = e.Name,
Email = e.Email,
Country = e.Country,
Mobile = e.Mobile
}).ToList();
_model.EmployeeTeamGrid = qq;
return View("Index", _model);
}
public ActionResult Filter(int Manager_ID)
{
int? emp_ID = Convert.ToInt32(Manager_ID);
List<Employee> y = null;
var qq = y;
if (emp_ID == 0)
{
qq = (from e in db.EmployeeTeam
select new Employee
{
Employee_ID = e.Employee_ID,
Name = e.Name,
Email = e.Email,
Country = e.Country,
Mobile = e.Mobile
}).ToList();
}
else
{
qq = (from e in db.EmployeeTeam
where e.Manager_ID == emp_ID
select new Employee
{
Employee_ID = e.Employee_ID,
Name = e.Name,
Email = e.Email,
Country = e.Country,
Mobile = e.Mobile
}).ToList();
}
return PartialView("_ShowManagerTeam", qq);
}
}
}
حال روی متد Index راست کلیک کرده ویک View ایجاد کنید و کد های زیر را در View آن اضافه کنید
@model MVC_DropDown_and_GridView.Models.Employee
@{
ViewBag.Title = "MVC 4 - Showing Data in DropDown And Grid View";
}
<script src="~/Scripts/jquery-2.1.4.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<link href="~/StyleSheet1.css" rel="stylesheet" />
<table style="width: 90%; text-align: center; background-color: #ADD8E6; padding: 10px;">
<tr> <td style="padding: 10px; text-align: center; height:30px; background-color:#FF0000;
font-size:20pt; font-weight:bold; color:white;">Select Manager #
@Html.DropDownList("lstManagerEmployee", Model.ManagerEmployeeList)
</td></tr>
<tr><td><div id="employeeListGrid">
@Html.Partial("_ShowManagerTeam", Model.EmployeeTeamGrid)
</div>
</td></tr>
</table>
<script>
$(document).ready(function () {
$("#lstManagerEmployee").append($("<option></option>").val("0").html("All Employee"));
$("#lstManagerEmployee").val("0");
});
</script>
<script type="text/javascript">
$('#lstManagerEmployee').change(function (e) {
e.preventDefault();
var url = '@Url.Action("Filter")';
$.get(url, { Manager_ID: $(this).val() }, function (result) {
$('#employeeListGrid').html(result);
});
});
</script>
سپس روی View Employee راست کلیک کرده ویک Partial View به نام ShowManagerTeam.cshtml برای ساخت گرید به برنامه اضافه میکنیم
<div id="gridposition" style="width: 100%;">
@{
var grid1 = new WebGrid(source: Model, canPage: true, rowsPerPage: 10, ajaxUpdateContainerId: "gridContent");
@grid1.GetHtml(mode: WebGridPagerModes.All,
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
rowStyle: "gridRow",
alternatingRowStyle: "gridAltRow",
htmlAttributes: new { id = "positionGrid" },
fillEmptyRows: false,
columns: grid1.Columns(
grid1.Column("Employee_ID", header: "Employee_ID"),
grid1.Column("Name", header: "Name"),
grid1.Column("Email", header: "Email"),
grid1.Column("Country", header: "Country "),
grid1.Column("Mobile", header: "Mobile")))
}
</div>
حال برای طراحی گرید ویو یک صفحه از نوع css به نام StyleSheet1.css ایجاد کرده و کد های زیر را داخل آن مینویسیم.
.gridTable {margin: 5px;padding: 10px;border: 1px #c8c8c8 solid;
border-collapse: collapse;min-width: 550px;
background-color: #fff;color: #fff; width:100%;}
.gridHead th{font-weight: bold;background-color: #030D8D;
color: #fff;padding: 10px; text-align:left;}
.gridHead a:link,.gridHead a:visited,.gridHead a:active,.gridHead a:hover {color: #fff;}
.gridHead a:hover {text-decoration:underline;}
.gridTable tr.gridAltRow{background-color: #efeeef;}
.gridTable tr:hover{background-color: #f6f70a;}
.gridAltRow td{padding: 10px;margin: 5px; color: #333;text-align:left;}
.gridRow td{padding: 10px;color: #333; text-align:left;}
.gridFooter td{padding: 10px; color: #ffffff;font-size: 12pt;
text-align: center; background-color:#228B22;}
.gridFooter a{font-weight: bold;color: blue; border: 2px #f00 solid;}
حال از برنامه اجرا بگرید

- ASP.net MVC
- 3k بازدید
- 2 تشکر