#Expected Output
#Controller Code(TestController.cs)
#Model (EmployeeViewModel.cs)
# View (Index.cshtml)
#Controller Code(TestController.cs)
using MVCTutorial.Models; using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Threading; using System.Web; using System.Web.Mvc; namespace MVCTutorial.Controllers { public class TestController : Controller { public ActionResult Index() { MVCTutorialEntities db = new MVCTutorialEntities(); List<EmployeeViewModel> list = db.Employees.Select(x => new EmployeeViewModel { Name = x.Name, EmployeeId = x.EmployeeId, DepartmentName = x.Department.DepartmentName, Address = x.Address }).ToList(); ViewBag.EmployeeList = list; return View(); } public ActionResult GetSearchRecord(string SearchText) { MVCTutorialEntities db = new MVCTutorialEntities(); List<EmployeeViewModel> list = db.Employees.Where(x => x.Name.Contains(SearchText) || x.Department.DepartmentName.Contains(SearchText)).Select(x => new EmployeeViewModel { Name = x.Name, EmployeeId = x.EmployeeId, DepartmentName = x.Department.DepartmentName, Address = x.Address }).ToList(); return PartialView("SearchPartial", list); } } }
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace MVCTutorial.Models { public class EmployeeViewModel { public int EmployeeId { get; set; } public string Name { get; set; } public Nullable<int> DepartmentId { get; set; } public string Address { get; set; } public Nullable<bool> IsDeleted { get; set; } //Extra attribute public string DepartmentName { get; set; } public bool Remember { get; set; } public string SiteName { get; set; } } }
@model MVCTutorial.Models.EmployeeViewModel @{ ViewBag.Title = "Index"; // Layout = null; } <div class="panel panel-body" style="min-height:256px"> <div class="col-md-3"> @*@{ Html.RenderAction("SideMenu", "Test");}*@ </div> <div class="col-md-9"> @Html.TextBoxFor(m => m.Name, new { @class="form-control",@placeholder="Search here"}) <img src="~/Content/loading.gif" id="loader" height="20" width="20" style="display:none"/> <table class="table table-striped"> <tr> <th> Name </th> <th> DepartmentName </th> <th> Address </th> <th> Action </th> </tr> <tbody id="employeeRow"> @if (ViewBag.EmployeeList != null) { foreach (var item in ViewBag.EmployeeList) { <tr> <td>@item.Name</td> <td>@item.DepartmentName</td> <td>@item.Address</td> <td><a href="#"><i class="glyphicon glyphicon-eye-open"></i>View</a></td> </tr> } } </tbody> </table> </div> </div> <script> $(document).ready(function () { $("#Name").keydown(function () { $("#loader").show(); var searchtext = $(this).val(); debugger $.ajax({ type: "Post", url: "/Test/GetSearchRecord?SearchText=" + searchtext, contentType: "html", success: function (response) { $("#loader").hide(); $("#employeeRow").html(response); } }) }) }) </script>
# Partial View (SearchPartial.cshtml)
@model IEnumerable<MVCTutorial.Models.EmployeeViewModel> @if (Model != null) { foreach (var item in Model) { <tr> <td>@item.Name</td> <td>@item.DepartmentName</td> <td>@item.Address</td> <td><a href="#"><i class="glyphicon glyphicon-eye-open"></i>View</a></td> </tr> } }
USE [MVCTutorial] GO /****** Object: Table [dbo].[Employee] Script Date: 19-03-2017 00:02:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Employee]( [EmployeeId] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [DepartmentId] [int] NULL, [Address] [varchar](150) NULL, [IsDeleted] [bit] NULL, CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED ( [EmployeeId] 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 ALTER TABLE [dbo].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Department] FOREIGN KEY([DepartmentId]) REFERENCES [dbo].[Department] ([DepartmentId]) GO ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Department] GO
All Code Factory
- Part 11- Insert data into database
- Part 12- Server side and clientside validation
- Part 13- Insert data into multiple tables
- Part 14- Insert data into database using JQuery
- Part 15- How to create Bootstrap Popup
- Part 16- Delete operation in Asp.net MVC
- Part 17- What is Partial View in Asp.net MVC
- Part 18- How to call Partial View using JQuery
- Part 19- Difference between Html.Partial() and Html.RenderPartial()
- Part 20- AddEdit Record using Partial View
- Part 21- Layout View in Asp.net MVC
- Part 22- Style.Render and Script.Render
- Part 23 - RenderBody, RenderSection and RenderPage.
- Part 24- Divide Page into several component using Bootstrap
- Part 25- Refresh Entity framework after any modification in database table
- Part 26- Set foreign key relationnship in database tables
- Part 27- Create Rgistration Page
- Part 28- Create Login Page
- Part 29- Client Side Validation using JQuery
- Part 30- How to return multiple Model to a View (Interview)
- Part 31- How to create Dynamic Menu using Partial View
- Part 32- Preview Image Before Uploading
- Part 33- Upload and Display Image using JQuery
- Part 34-Upload Image to SQL Server and Display
- Part 35- Download Image from URL and Upload to SQL Server
- Part 36- Cascading DropdownList
- Part 37- Implement Search Functionality
- Part 38- Attribute Routing in MVC
- Part 39- How to display multiple checkbox checked data
- Part 40- How to send multiple checkbox checked value to Server
- Part 41- How to create responsive sortable Image Gallery
- Part 42 - How to implement JQuery Autocomplete Textbox
- Part 43 - How to send Emails in Asp.net MVC
- Part 44 - Integrate JQuery DataTables plugin
- Part 45 - Display record from database using JQuery Datatable
- Part 46- Add Edit Record using JQuery DataTable
- Part 47 - JQuery DataTables Server -side Processing
- Part 48 - JQuery server side processing -Search functionality
- Part 49 - Pagination using Skip and Take method
- Part 50 - Refresh DataTable After Performing Any Action
- Part 51 - Send OTP ( One Time Password ) to any mobile device
- Part 52 - How to use AutoMapper in Asp.net MVC
- Part 53 - How to use AutoMapper ForMember Method
- Part 54 - Repository Pattern - 1 - Adding Business Layer
- Part 55 - Repository Pattern - 2 - Adding Domain Layer
- Part 56 - Repository Pattern - 3 - Dependency Injection
- Part 57- Repository Pattern- 4 - Adding Data Access Layer
- Part 58 - Repository Pattern - 5 - Setting Up Generic Repository
- Part 59 - Display Record using repository pattern
- Part 60 - Add Edit Record using Repository Pattern