|
Introduction
This is the 5th part of this series, where I am going to explain to display database data in webgrid in asp.net MVCYou know, Dotnet awesome is a platform to learn, read and explore contents related to web development. Here in this series "Implement basic functionality in asp.net MVC application", I have explained how to create some very basic functionality like create a registration page, login page, file upload page etc., especially for beginners.
I have explained following articles in the series "Implement basic functionality in asp.net MVC application"
- How to create a User Registration page using asp.net mvc
- How to create a login page using asp.net mvc
- How to create career page with Upload file (CV) in MVC
- How to create Feedback page with cascade dropdownlist in MVC.
- How to display database data in webgrid in mvc
Steps :
Step - 1: Create New Project.
Go to File > New > Project > Select asp.net MVC4 web application > Entry Application Name > Click OK > Select Internet Application > Select view engine Razor > OKStep-2: Add a Database.
Go to Solution Explorer > Right Click on App_Data folder > Add > New item > Select SQL Server Database Under Data > Enter Database name > Add.Step-3: Create table for Get data.
Open Database > Right Click on Table > Add New Table > Add Columns > Save > Enter table name > Ok.Step-4: Add Entity Data Model.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select ADO.net Entity Data Model under data > Enter model name > Add.A popup window will come (Entity Data Model Wizard) > Select Generate from database > Next >
Chose your data connection > select your database > next > Select tables > enter Model Namespace > Finish.
Step-5: Create a Controller.
Go to Solution Explorer > Right Click on Controllers folder form Solution Explorer > Add > Controller > Enter Controller name > Select Templete "empty MVC Controller"> Add.Here I have created a controller "UserController"
Step-6: Add new action into your controller for Get Method, which will get data from database
namespace MVCSimpleWebgrid.Controllers { public class UserController : Controller { // // GET: /User/ public ActionResult List() { var users = new List<UserMaster>(); //here MyDatabaseEntities is the dbcontext using (MyDatabaseEntities dc = new MyDatabaseEntities()) { users = dc.UserMasters.ToList(); } return View(users); } } }
Step-7: Add view for your Action & design for show data in webgrid.
[N.B.: Before going to add view for your action, Please rebuild your application]Right Click on Action Method (here right click on List action) > Add View... > Enter View Name > Select View Engine (Razor) > Check "Create a strong-typed view" > Select your model class > Add.
HTML Code
@model List<MVCSimpleWebgrid.UserMaster> @{ ViewBag.Title = "List of users"; var grid = new WebGrid(source:Model,canPage:true, rowsPerPage:10); grid.Pager(WebGridPagerModes.All); } <h2>List of Users</h2> <style type="text/css"> /*Here we will add css for style webgrid*/ .webgrid-table { font-family: "Trebuchet MS" , Arial, Helvetica, sans-serif; font-size: 1.2em; width: 100%; display: table; border-collapse: separate; border: solid 1px #98BF21; background-color: white; } .webgrid-table td, th { border: 1px solid #98BF21; padding: 3px 7px 2px; } .webgrid-header { background-color: #A7C942; color: #FFFFFF; padding-bottom: 4px; padding-top: 5px; text-align: left; } .webgrid-footer { } .webgrid-row-style { padding: 3px 7px 2px; } .webgrid-alternating-row { background-color: #EAF2D3; padding: 3px 7px 2px; } </style> <div id="content"> @grid.GetHtml( tableStyle:"webgrid-table", headerStyle:"webgrid-header", footerStyle:"webgrid-footer", alternatingRowStyle:"webgrid-alternating-row", rowStyle:"webgrid-row-style", columns:grid.Columns( //here i will add column for serial no grid.Column(header:"Serial No", format:@<text><div>@(item.WebGrid.Rows.IndexOf(item)+1)</div></text>), grid.Column(columnName:"Username",header:"Username"), grid.Column(columnName:"FullName", header:"Full Name"), grid.Column(header:"Email", format:@<text><a href="mailto:@item.EmailID">@item.EmailID</a></text>), grid.Column(header:"Is Active?", format:@<text><input type="checkbox" checked="@item.isActive" disabled="disabled" /></text>) )) </div>
Step-8: Run Application.
Download Application Live Demo