Saturday, 16 December 2017

Adding data to database using entity framework.









After success of employee addition message is display as in below screen.


Step 1: Install entity framework, if you don't have it installed already on your computer. Using nuget package manager, is the easiest way to install. A reference to EntityFramework.dll is automatically added.
Open visual studio > Tools > Library Package Manager > Manage NuGet Packages for Solution

Step 2: Add EmployeeContext.cs class file to the Models folder. Add the following "using" declaration (using System.Data.Entity;).

EmployeeContext class derives from DbContext class, and is responsible for establishing a connection to the database. So include connection string in web.config file.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;

namespace MVCDemo.Entity
{
    public class EmployeeContext : DbContext
    {
        public DbSet<Employee> Employees { get; set; }
    }
}

Step 3: Add a connection string

 <add name="EmployeeContext" connectionString="server=RIZVI-PC\SQLEXPRESS; database=Northworth; integrated security=SSPI" providerName="System.Data.SqlClient" />

Step 4: Map "Employee" model class to the database table, Employees using "Table" and "Key" attribute as shown below.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MVCDemo.Entity
{
    [Table("Employees")]
    public class Employee
    {
        [Key]
        public int EmployeeId { get; set; }
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public string Title { get; set; }
        public string TitleofCourtesy { get; set; }
        public string Language { get; set; }
        public DateTime DOB { get; set; }
        public DateTime DOJ { get; set; }
        public double Salary { get; set; }
        public string Email { get; set; }
    }
}

 Step 5: Make the changes to action method in controller class.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCDemo.Entity;
using System.Text.RegularExpressions;

namespace MvcDemo.Controllers
{
    public class HomeController : Controller
    {       
        public ActionResult Customer()
        {
            List<SelectListItem> items = new List<SelectListItem>();
            items.Add(new SelectListItem
            {
                Text = "Option1",
                Value = "Option1"
            });
            items.Add(new SelectListItem
            {
                Text = "Option2",
                Value = "Option2"
            });
            items.Add(new SelectListItem
            {
                Text = "Option3",
                Value = "Option3"
            });
            items.Add(new SelectListItem
            {
                Text = "Option4",
                Value = "Option4"
            });

            ViewBag.ListOfItems = items;
            TempData["ListofItems"] = items;
            return View();
        }

        [HttpPost]
        public ActionResult Customer(Employee objEmployee, string radios, string[] departments)
        {
            ViewBag.ListOfItems = TempData["ListofItems"];
            TempData.Keep();
            // Performing server side validation
            if (string.IsNullOrEmpty(objEmployee.LastName))
            {
                ModelState.AddModelError("LastName", "Last Name is required");
            }
            if (string.IsNullOrEmpty(objEmployee.FirstName))
            {
                ModelState.AddModelError("FirstName", "First Name is required");
            }
            if (objEmployee.Title == "0")
            {
                ModelState.AddModelError("Title", "Title is required");
            }
            if (string.IsNullOrEmpty(radios))
            {
                ModelState.AddModelError("TitleofCourtesy", "Title of Coutesy is required");
            }
            if (departments==null)
            {
                ModelState.AddModelError("Language", "Language is required");
            }
            if (!string.IsNullOrEmpty(objEmployee.Email))
            {
                string emailRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
                                         @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
                                            @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
                Regex re = new Regex(emailRegex);
                if (!re.IsMatch(objEmployee.Email))
                {
                    ModelState.AddModelError("Email", "Email is not valid");
                }
            }
            else
            {
                ModelState.AddModelError("Email", "Email is required");
            }

            if (ModelState.IsValid)
            {
                // Perform Operations
                objEmployee.TitleofCourtesy = radios;

                // You might have to use string separator like comma or something else.
                string dept = "";
                foreach (var d in departments)
                    dept += d.ToString(); 
                objEmployee.Language = dept;

                try
                {
                    EmployeeContext db = new EmployeeContext();
                    db.Employees.Add(objEmployee);
                    db.SaveChanges();

                    ViewBag.Message = "Employee Added.";
                }
                catch (Exception ex)
                { 
                
                }
            }
            return View();
        }
    }
}

In View:

@model MVCDemo.Entity.Customer
@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Customer</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container-fluid">
        <h3>Add Employee</h3>
        @if (ViewBag.Message != null)
        { 
            <h5>@ViewBag.Message</h5>
        }
        else
        {
            <div class="container">
                @using (Html.BeginForm("Customer", "Home", FormMethod.Post))
                {
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Last Name</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.LastName, new { id = "txtLastName", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errLastName">
                                @Html.ValidationMessageFor(m => m.LastName)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">First Name</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.FirstName, new { id = "txtFirstName", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errFirstName">
                                @Html.ValidationMessageFor(m => m.FirstName)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Title</div>
                        <div class="col-md-3">
                            @Html.DropDownListFor(m => m.Title,
                  new List<SelectListItem> { 
                       new SelectListItem { Value = "0" , Text = "Select Title" },
                       new SelectListItem { Value = "1" , Text = "Option A" },
                       new SelectListItem { Value = "2" , Text = "Option B" },
                       new SelectListItem { Value = "3" , Text = "Option C" }
                    },
                  new { id = "drpTitle", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errTitle">
                                @Html.ValidationMessageFor(m => m.Title)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Title of Courtesy</div>
                        <div class="col-md-3">
                            @if (ViewBag.ListOfItems != null)
                            {
                                foreach (var c in ViewBag.ListOfItems)
                                {
                                <input type="radio" name="radios" value="@c.Value" />@c.Text
                                }
                            }
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errTOC">
                                @Html.ValidationMessageFor(m => m.TitleofCourtesy)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Language</div>
                        <div class="col-md-3">
                            @if (ViewBag.ListOfItems != null)
                            {
                                foreach (var c in ViewBag.ListOfItems)
                                {
                                <input type="checkbox" name="departments" value="@c.Value" />@c.Text
                                }
                            }
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errLanguage">
                                @Html.ValidationMessageFor(m => m.Language)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">DOB</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.DOB, new { id = "txtDOB", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errDOB">
                                @Html.ValidationMessageFor(m => m.DOB)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">DOJ</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.DOJ, new { id = "txtDOJ", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errDOJ">
                                @Html.ValidationMessageFor(m => m.DOJ)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Salary</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.Salary, new { id = "txtSalary", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger hidden" id="errSalary">
                                @Html.ValidationMessageFor(m => m.Salary)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">Email</div>
                        <div class="col-md-3">
                            @Html.TextBoxFor(m => m.Email, new { id = "txtEmail", @class = "form-control" })
                        </div>
                        <div class="col-md-6">
                            <div class="text-danger" id="errEmail">
                                @Html.ValidationMessageFor(m => m.Email)
                            </div>
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                    <div class="row">
                        <div class="col-md-3">&nbsp;</div>
                        <div class="col-md-3">
                            <input type="submit" id="btnSave" class="btn btn-primary" value="Save" />
                        </div>
                        <div class="col-md-6">
                            &nbsp;
                        </div>
                    </div>
                    <div class="clear-fix">&nbsp;</div>
                }
            </div>
        }
    </div>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("#txtDOB").datepicker({ maxDate: '0' });
            $("#txtDOJ").datepicker({ minDate: '0' });
            $("#btnSave").click(function () {
            });
        });
    </script>
</body>
</html>

Step 6: Existing databases do not need, database initializer so it can be turned off so copy and paste the following code in Application_Start() function, in Global.asax file.

Database.SetInitializer<MVCDemo.Models.EmployeeContext>(null);

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace MvcDemo
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Database.SetInitializer<MVCDemo.Entity.EmployeeContext>(null);

            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }
    }
}

Performing server side validation in MVC.

In Models
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MVCDemo.Entity;

namespace MVCDemo.Entity
{
    public class Customer
    {
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public string Title { get; set; }
        public string TitleofCourtesy { get; set; }
        public string Language { get; set; }
        public bool IsLanguage { get; set; }
        public DateTime DOB { get; set; }
        public DateTime DOJ { get; set; }
        public double Salary { get; set; }
        public string Email { get; set; }
    }
}

In Controller

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCDemo.Entity;
using System.Text.RegularExpressions;

namespace MvcDemo.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Customer()
        {
            ViewBag.Message = "Your Employee page.";
            List<SelectListItem> items = new List<SelectListItem>();
            items.Add(new SelectListItem
            {
                Text = "Option1",
                Value = "Option1"
            });
            items.Add(new SelectListItem
            {
                Text = "Option2",
                Value = "Option2"
            });
            items.Add(new SelectListItem
            {
                Text = "Option3",
                Value = "Option3"
            });
            items.Add(new SelectListItem
            {
                Text = "Option4",
                Value = "Option4"
            });

            ViewBag.ListOfItems = items;
            TempData["ListofItems"] = items;
            return View();
        }

        [HttpPost]
        public ActionResult Customer(Customer objCustomer, string radios, string[] departments)
        {
            ViewBag.Message = "Your Employee page.";
            ViewBag.ListOfItems = TempData["ListofItems"];
            TempData.Keep();
            if (string.IsNullOrEmpty(objCustomer.LastName))
            {
                ModelState.AddModelError("LastName", "Last Name is required");
            }
            if (string.IsNullOrEmpty(objCustomer.FirstName))
            {
                ModelState.AddModelError("FirstName", "First Name is required");
            }
            if (objCustomer.Title == "0")
            {
                ModelState.AddModelError("Title", "Title is required");
            }
            if (string.IsNullOrEmpty(radios))
            {
                ModelState.AddModelError("TitleofCourtesy", "Title of Coutesy is required");
            }
            if (departments==null)
            {
                ModelState.AddModelError("Language", "Language is required");
            }
            if (!string.IsNullOrEmpty(objCustomer.Email))
            {
                string emailRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
                                         @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
                                            @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
                Regex re = new Regex(emailRegex);
                if (!re.IsMatch(objCustomer.Email))
                {
                    ModelState.AddModelError("Email", "Email is not valid");
                }
            }
            else
            {
                ModelState.AddModelError("Email", "Email is required");
            }


            if (ModelState.IsValid)
            {
                // Perform Operations
            }
            return View();
        }
    }
}


In Views 

@model MVCDemo.Entity.Customer
@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Customer</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container-fluid">
        <h3>Add Employee</h3>
        <div class="container">
           @using (Html.BeginForm("Customer","Home", FormMethod.Post)) {
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Last Name</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.LastName, new { id = "txtLastName", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errLastName">
                            @Html.ValidationMessageFor(m => m.LastName)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">First Name</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.FirstName, new { id = "txtFirstName", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errFirstName">
                            @Html.ValidationMessageFor(m => m.FirstName)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Title</div>
                    <div class="col-md-3">
                        @Html.DropDownListFor(m => m.Title,
                  new List<SelectListItem> { 
                       new SelectListItem { Value = "0" , Text = "Select Title" },
                       new SelectListItem { Value = "1" , Text = "Option A" },
                       new SelectListItem { Value = "2" , Text = "Option B" },
                       new SelectListItem { Value = "3" , Text = "Option C" }
                    },
                  new { id = "drpTitle", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errTitle">
                            @Html.ValidationMessageFor(m => m.Title)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Title of Courtesy</div>
                    <div class="col-md-3">
                        @if (ViewBag.ListOfItems != null)
                        {
                            foreach (var c in ViewBag.ListOfItems)
                            {
                            <input type="radio" name="radios" value="@c.Value" />@c.Text
                            }
                        }
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errTOC">
                            @Html.ValidationMessageFor(m => m.TitleofCourtesy)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Language</div>
                    <div class="col-md-3">
                        @if (ViewBag.ListOfItems != null)
                        {
                            foreach (var c in ViewBag.ListOfItems)
                            {
                            <input type="checkbox" name="departments" value="@c.Value" />@c.Text
                            }
                        }
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errLanguage">
                            @Html.ValidationMessageFor(m => m.Language)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">DOB</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.DOB, new { id = "txtDOB", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errDOB">
                            @Html.ValidationMessageFor(m => m.DOB)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">DOJ</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.DOJ, new { id = "txtDOJ", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errDOJ">
                            @Html.ValidationMessageFor(m => m.DOJ)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Salary</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.Salary, new { id = "txtSalary", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger hidden" id="errSalary">
                            @Html.ValidationMessageFor(m => m.Salary)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">Email</div>
                    <div class="col-md-3">
                        @Html.TextBoxFor(m => m.Email, new { id = "txtEmail", @class = "form-control" })
                    </div>
                    <div class="col-md-6">
                        <div class="text-danger" id="errEmail">
                            @Html.ValidationMessageFor(m => m.Email)
                        </div>
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
                <div class="row">
                    <div class="col-md-3">&nbsp;</div>
                    <div class="col-md-3">
                        <input type="submit" id="btnSave" class="btn btn-primary" value="Save" />
                    </div>
                    <div class="col-md-6">
                        &nbsp;
                    </div>
                </div>
                <div class="clear-fix">&nbsp;</div>
           }
        </div>

    </div>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("#txtDOB").datepicker({ maxDate: '0' });
            $("#txtDOJ").datepicker({ minDate: '0' });
            $("#btnSave").click(function () {
            });
        });
    </script>
</body>
</html>

Wednesday, 13 December 2017

Create Screen Add Employee Using Simple Jquery Validation



In View :

@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Employee</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container-fluid">
        <h3>Add Employee</h3>

        <div class="container">
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Last Name</div>
                <div class="col-md-3">
                    <input type="text" id="txtLastName" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errLastName">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">First Name</div>
                <div class="col-md-3">
                    <input type="text" id="txtFirstName" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errFirstName">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Title</div>
                <div class="col-md-3">
                    <select id="drpTitle" class="form-control">
                        <option>Select Title</option>
                        <option>Option 01</option>
                    </select>
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errTitle">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Title of Courtesy</div>
                <div class="col-md-3">
                    <label class="radio-inline">
                        <input type="radio" name="optradio">Option 1</label>
                    <label class="radio-inline">
                        <input type="radio" name="optradio">Option 2</label>
                    <label class="radio-inline">
                        <input type="radio" name="optradio">Option 3</label>
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errTOC">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Language</div>
                <div class="col-md-3">
                    <label class="checkbox-inline">
                        <input type="checkbox" name="chkLanguage" value="English">English</label>
                    <label class="checkbox-inline">
                        <input type="checkbox" name="chkLanguage" value="Hindi">Hindi</label>
                    <label class="checkbox-inline">
                        <input type="checkbox" name="chkLanguage" value="Urdu">Urdu</label>
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errLanguage">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">DOB</div>
                <div class="col-md-3">
                    <input type="text" id="txtDOB" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errDOB">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">DOJ</div>
                <div class="col-md-3">
                    <input type="text" id="txtDOJ" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errDOJ">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Salary</div>
                <div class="col-md-3">
                    <input type="text" id="txtSalary" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errSalary">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">Email</div>
                <div class="col-md-3">
                    <input type="text" id="txtEmail" class="form-control" />
                </div>
                <div class="col-md-6">
                    <div class="text-danger hidden" id="errEmail">
                        <strong>Required</strong>
                    </div>
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
            <div class="row">
                <div class="col-md-3">&nbsp;</div>
                <div class="col-md-3">
                    <input type="button" id="btnSave" class="btn btn-primary" value="Save" />
                </div>
                <div class="col-md-6">
                    &nbsp;
                </div>
            </div>
            <div class="clear-fix">&nbsp;</div>
        </div>

        <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
        @*<link rel="stylesheet" href="/resources/demos/style.css">*@
        <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
        <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
        <script>
            $(function () {
                $("#txtDOB").datepicker({ maxDate: '0' });
                $("#txtDOJ").datepicker({ minDate: '0' });

                $("#txtLastName").keypress(function () {
                    if ($("#txtLastName").length > 0)
                        $("#errLastName").addClass("hidden");
                });

                $("#txtFirstName").keypress(function () {
                    if ($("#txtFirstName").length > 0)
                        $("#errFirstName").addClass("hidden");
                });

                $("#drpTitle").change(function () {
                    if ($("#drpTitle option:selected").text() != "Select Title") {
                        $("#errTitle").addClass("hidden");
                    }
                });

                $('[name="optradio"]').change(function () {
                    if ($('[name="optradio"]:checked').length > 0)
                        $("#errTOC").addClass("hidden");
                });

                $('[name="chkLanguage"]').change(function () {
                    if ($('[name="chkLanguage"]:checked').length > 0)
                        $("#errLanguage").addClass("hidden");
                });

                $("#txtDOB").change(function () {
                    if ($("#txtDOB").length > 0)
                        $("#errDOB").addClass("hidden");
                });

                $("#txtDOJ").change(function () {
                    if ($("#txtDOJ").length > 0)
                        $("#errDOJ").addClass("hidden");
                });
                             
                $("#txtSalary").keyup(function () {
                    if ($("#txtSalary").val() < 10000 || $("#txtSalary").val() > 40000)
                        $("#errSalary").html("<strong>Salary should be between 10000 and 40000.</strong>").removeClass("hidden");
                    else if ($("#txtSalary").val() > 10000 && $("#txtSalary").val() < 40000)
                        $("#errSalary").html("<strong>Required</strong>").addClass("hidden");
                });
             
                // Only for Numeric Values in textbox.
                $("#txtSalary").keydown(function (event) {
                    // Allow only backspace and delete
                    if (event.keyCode == 46 || event.keyCode == 8) {
                        // let it happen, don't do anything
                    }
                    else {
                        // Ensure that it is a number and stop the keypress
                        if (event.keyCode < 48 || event.keyCode > 57) {
                            event.preventDefault();
                        }
                    }
                });

                $("#txtEmail").keyup(function () {
                    if ($("#txtEmail").val() != "") {
                        var re = /^\w+([-+.'][^\s]\w+)*@@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
                        if (re.test($("#txtEmail").val())) {
                            $("#errEmail").html("<strong>Required.</strong>").addClass("hidden");
                        }
                        else {
                            $("#errEmail").html("<strong>Invalid Email</strong>").removeClass("hidden");
                            $("#txtEmail").focus();
                        }
                    }
                    else {
                        $("#errEmail").html("<strong>Required.</strong>").removeClass("hidden");
                        $("#txtEmail").focus();
                    }
                });

                $("#btnSave").click(function () {
                    if ($("#txtLastName").val() != "") {
                        if ($("#txtFirstName").val() != "") {
                            if ($("#drpTitle option:selected").text() != "Select Title") {
                                if ($('[name="optradio"]:checked').length > 0) {
                                    if ($('[name="chkLanguage"]:checked').length > 0) {
                                        if ($("#txtDOB").val() != "") {
                                            if ($("#txtDOJ").val() != "") {
                                                if ($("#txtSalary").val() != "") {
                                                    if ($("#txtEmail").val() != "") {
                                                        var re = /^\w+([-+.'][^\s]\w+)*@@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
                                                        if (re.test($("#txtEmail").val())) {

                                                        }
                                                        else {
                                                            $("#errEmail").html("<strong>Invalid Email</strong>").removeClass("hidden");
                                                            $("#txtEmail").focus();
                                                        }
                                                    }
                                                    else {
                                                        $("#errEmail").removeClass("hidden");
                                                        $("#txtEmail").focus();
                                                    }
                                                }
                                                else {
                                                    $("#errSalary").removeClass("hidden");
                                                    $("#txtSalary").focus();
                                                }
                                            }
                                            else {
                                                $("#errDOJ").removeClass("hidden");
                                                $("#txtDOJ").focus();
                                            }
                                        }
                                        else {
                                            $("#errDOB").removeClass("hidden");
                                            $("#txtDOB").focus();
                                        }
                                    }
                                    else {
                                        $("#errLanguage").removeClass("hidden");
                                        $('[name="chkLanguage"]').focus();
                                    }
                                }
                                else {
                                    $("#errTOC").removeClass("hidden");
                                    $('[name="optradio"]').focus();
                                }
                            }
                            else {
                                $("#errTitle").removeClass("hidden");
                                $("#drpTitle").focus();
                            }
                        }
                        else {
                            $("#errFirstName").removeClass("hidden");
                            $("#txtFirstName").focus();
                        }
                    }
                    else {
                        $("#errLastName").removeClass("hidden");
                        $("#txtLastName").focus();
                    }
                });
            });
        </script>
</body>

</html>

Saturday, 25 November 2017

GridView databind, edit and delete operations





using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class AdminPanel_manageTuts : System.Web.UI.Page
{
    Class_Tuts _objTutors = new Class_Tuts();
    protected int _tutors;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Drp_City.DataBind();
            Drp_City.Items.Insert(0, "Select");

            bindgrid();

            txt_Subject.DataBind();
            txt_Class.DataBind();
        }
    }
    protected void btn_submit_Click(object sender, EventArgs e)
    {
        try
        {
            _objTutors.TutorID = Convert.ToInt32(lbl_blogId.Text);

            _objTutors.TutorImagePath = "";
            if (FileUpload1.HasFile)
            {
                string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
                if (fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png" || fileExt == ".jpeg")
                {
                    _objTutors.TutorImagePath = "~/TutImages/" + _objTutors.TutorID + Class_Additionalresources.Getextention(FileUpload1.FileName);
                    FileUpload1.SaveAs(Server.MapPath(_objTutors.TutorImagePath));
                }
                else
                {
                    lblMsg.Text = "Only jpg,gif and png file are allowed";
                    div_message.Visible = true;
                    img_right.Visible = false;
                    img_error.Visible = true;
                    lblMsg.ForeColor = System.Drawing.Color.Red;
                    Clear();
                }
            }

            _objTutors.TutorName = txt_TutorName.Text.ToString();
            _objTutors.City = Drp_City.SelectedItem.Text.ToString();
         
           // _objTutors.Subject = txt_Subject.Text.ToString();
            string _subject = "";
            foreach (ListItem list in txt_Subject.Items)
            {
                if (list.Selected)
                    _subject += list.Text + ",";
            }
            if (_subject != "")
            {
                _subject = _subject.Substring(0, _subject.Length - 1);

                _objTutors.Subject = txt_Subject.Text.ToString();
                _objTutors.Subject = _subject;
            }
            else
            {
                _objTutors.Subject = _subject;
            }

            //_objTutors.Class = txt_Class.Text.ToString();
            string _class = "";
            foreach (ListItem list in txt_Class.Items)
            {
                if (list.Selected)
                    _class += list.Text + ",";
            }
            if (_class != "")
            {
                _class = _class.Substring(0, _class.Length - 1);
                _objTutors.Class = _class;
            }
            else
            {
                _objTutors.Class = _class;
            }

            _objTutors.PhoneNo = txt_phoneNo.Text.ToString();
            _objTutors.AlternatePhoneNo = txt_alternatephoneno.Text.ToString();
            _objTutors.EmailID = txt_EmailID.Text.ToString();
            _objTutors.Location = txt_Location.Text.ToString();
            _objTutors.Description = txt_desc.Text.ToString();

            _objTutors.UpdateTutorByID();
            if (_objTutors.OperationStatus)
            {
                lblMsg.Text = "Tutor updated successfully.";
                div_message.Visible = true;
                img_right.Visible = true;
                img_error.Visible = false;
                lblMsg.ForeColor = System.Drawing.Color.Green;
            }
            else
            {
                lblMsg.Text = "Tutor not updated successfully.";
                div_message.Visible = true;
                img_right.Visible = false;
                img_error.Visible = true;
                lblMsg.ForeColor = System.Drawing.Color.Red;

                Clear();
            }
        }
        catch (Exception ex)
        {
            lblMsg.Text = "Error : " + ex;
            div_message.Visible = true;
            img_right.Visible = false;
            img_error.Visible = true;
            lblMsg.ForeColor = System.Drawing.Color.Red;
        }
    }
    protected void btn_cancel_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/AdminPanel/manageTutors.aspx");
    }

    private void Clear()
    {
        txt_TutorName.Text = "";
        Drp_City.SelectedIndex = 0;
        txt_Class.Text = "";
        txt_Subject.Text = "";
        txt_phoneNo.Text = "";
        txt_EmailID.Text = "";
        txt_Location.Text = "";
        txt_desc.Text = "";
    }

    //Grid Section
    private void bindgrid()
    {
        try
        {
            _objTutors.SearchText = txt_search.Text;
            _objTutors.GetAllTutors();
            if (_objTutors.OperationStatus)
            {
                DataTable dt = _objTutors.TutorTable;
                grid_Tutor.DataSource = dt;
                grid_Tutor.DataBind();
            }
            _objTutors.GetTutors();
            if (_objTutors.OperationStatus)
            {
                _tutors = Convert.ToInt32(_objTutors.TutorTable.Rows.Count);
            }

        }
        catch (Exception ex)
        {
            lblMsg.Text = "Error : " + ex.Message;
            div_message.Visible = true;
            img_error.Visible = true;
            img_right.Visible = false;
            lblMsg.ForeColor = System.Drawing.Color.Red;
        }
    }

    protected void btn_search_Click(object sender, EventArgs e)
    {
        bindgrid();
    }

    // Get data on selected index
    protected void grid_Tutor_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {

            lblMsg.Text = "";
            Div_Image.Visible = false;
            div_update.Visible = true;
            div_message.Visible = false;
            int rowindex = grid_Tutor.SelectedIndex;
            GridViewRow gvr = grid_Tutor.Rows[rowindex];
            HiddenField hdn_ID = (HiddenField)gvr.FindControl("hdn_TutorID");
            _objTutors.TutorID = Convert.ToInt32(hdn_ID.Value);
            _objTutors.GetTutorByID();
            if (_objTutors.OperationStatus)
            {
                DataTable dt = _objTutors.TutorTable;
                lbl_blogId.Text = dt.Rows[0]["TutorID"].ToString();
                txt_TutorName.Text = dt.Rows[0]["TutorName"].ToString();

                // Find by text in dropdown list and selected true
                Drp_City.ClearSelection();
                Drp_City.Items.FindByText(_objTutors.TutorTable.Rows[0]["City"].ToString()).Selected = true;
                //txt_Class.Text = dt.Rows[0]["Class"].ToString();
                //txt_Subject.Text = dt.Rows[0]["Subject"].ToString();

                // Find subjects and set selected true in checkbox list.
                string _subject = dt.Rows[0]["Subject"].ToString();
                List<string> list = _subject.Split(',').ToList();
                for (int i = 0; i < list.Count; i++)
                {
                    for (int j = 0; j < txt_Subject.Items.Count; j++)
                    {
                        if (list[i] == txt_Subject.Items[j].ToString())
                            txt_Subject.Items[j].Selected = true;
                    }
                }

                 // Find classes and set selected true in checkbox list.
                string _class = dt.Rows[0]["Class"].ToString();
                List<string> listclass = _class.Split(',').ToList();
                for (int i = 0; i < listclass.Count; i++)
                {
                    for (int j = 0; j < txt_Class.Items.Count; j++)
                    {
                        if (listclass[i] == txt_Class.Items[j].ToString())
                            txt_Class.Items[j].Selected = true;
                    }
                }

                txt_phoneNo.Text = dt.Rows[0]["PhoneNo"].ToString();
                txt_alternatephoneno.Text = dt.Rows[0]["AlternatePhoneNo"].ToString();
                txt_EmailID.Text = dt.Rows[0]["EmailID"].ToString();

                txt_Location.Text = dt.Rows[0]["Location"].ToString();
                txt_desc.Text = dt.Rows[0]["Description"].ToString();
            }
            else
            {
                // lbl_Gridmessage.Text = SubCategory.ErrorMessage;
            }
        }
        catch (Exception ex)
        {
            lblMsg.Text = "Error : " + ex.Message;
            div_message.Visible = true;
            img_error.Visible = true;
            img_right.Visible = false;
            lblMsg.ForeColor = System.Drawing.Color.Red;
        }
    }

    // Paging in gridview
    protected void grid_Tutor_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grid_Tutor.PageIndex = e.NewPageIndex;
        bindgrid();
    }

    // Delete data in gridview
    protected void grid_Tutor_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {
            int Delete_index = e.RowIndex;
            GridViewRow gr = grid_Tutor.Rows[Delete_index];
            string hdn = ((HiddenField)gr.FindControl("hdn_TutorID")).Value;
            int _objTutorsID = Convert.ToInt32(hdn);
            _objTutors.TutorID = _objTutorsID;
            _objTutors.DeleteTutorByID();

            if (_objTutors.OperationStatus)
            {
                lblMsg.Text = "Tutor Deleted Successfully.";
                lblMsg.ForeColor = System.Drawing.Color.Green;
                div_message.Visible = true;
                img_right.Visible = true;
                bindgrid();
            }
            else
            {
                div_message.Visible = true;
                lblMsg.Text = _objTutors.ErrorMessage;
                lblMsg.ForeColor = System.Drawing.Color.Red;
                img_error.Visible = true;
                img_right.Visible = false;
            }
        }
        catch (Exception ex)
        {
            div_message.Visible = true;
            lblMsg.Text = "Error : " + ex.Message;
            lblMsg.ForeColor = System.Drawing.Color.Red;
            img_error.Visible = true;
            img_right.Visible = false;
        }
    }

    // Delete confirmation alert message.
    protected void grid_Tutor_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType != DataControlRowType.DataRow) return;
        int lastCellIndex = e.Row.Cells.Count - 1;
        ImageButton db = (ImageButton)e.Row.Cells[lastCellIndex].Controls[0];
        db.OnClientClick = "if (!window.confirm('Are you sure you want to delete this record?')) return false;";
    }

    // Changing status of records on row command
    protected void grid_Tutor_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            if (e.CommandName == "Status")
            {
                ImageButton gv = (ImageButton)e.CommandSource;
                GridViewRow gvr = (GridViewRow)gv.Parent.Parent;
                HiddenField hdn_ID = (HiddenField)gvr.FindControl("hdn_TutorID");
                int index = Convert.ToInt32(gvr.RowIndex);
                int _tutorID = Convert.ToInt32(hdn_ID.Value);
                Boolean status = Convert.ToBoolean(gv.ImageUrl == "images/green.png" ? true : false);
                _objTutors.TutorID = _tutorID;
                _objTutors.Status = !status;
                _objTutors.UpdateTutorStatus();
                bindgrid();
            }
        }
        catch (Exception ex)
        {

        }
    }
}

In design


<%@ Register Assembly="FreeTextBox" Namespace="FreeTextBoxControls" TagPrefix="FTB" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <script type="text/javascript">
        $(function () {
            $('#gallery a').lightBox();
        });

        function PopupCenter(pageURL, title, w, h) {
            var left = (screen.width / 2) - (w / 2);
            var top = (screen.height / 2) - (h / 2);
            var targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
        }
    </script>
    <style type="text/css">
        #gallery {
            padding: 10px;
            width: 520px;
        }

            #gallery ul {
                list-style: none;
            }

                #gallery ul li {
                    display: inline;
                }

                #gallery ul img {
                    border: 5px solid #3e3e3e;
                    border-width: 5px 5px 20px;
                }

                #gallery ul a:hover img {
                    border: 5px solid #fff;
                    border-width: 5px 5px 20px;
                    color: #fff;
                }

                #gallery ul a:hover {
                    color: #fff;
                }


        #gallery1 {
            padding: 10px;
            width: 520px;
        }

            #gallery1 ul {
                list-style: none;
            }

                #gallery1 ul li {
                    display: inline;
                }

                #gallery1 ul img {
                    border: 5px solid #3e3e3e;
                    border-width: 5px 5px 20px;
                }

                #gallery1 ul a:hover img {
                    border: 5px solid #fff;
                    border-width: 5px 5px 20px;
                    color: #fff;
                }

                #gallery1 ul a:hover {
                    color: #fff;
                }
    </style>

    // Validate Subject for atleast one selection
    <script type="text/javascript">
        function ValidateCheckBoxList(sender, args) {
            var checkBoxList = document.getElementById("<%=txt_Subject.ClientID %>");
                var checkboxes = checkBoxList.getElementsByTagName("input");
                var isValid = false;
                for (var i = 0; i < checkboxes.length; i++) {
                    if (checkboxes[i].checked) {
                        isValid = true;
                        break;
                    }
                }
                args.IsValid = isValid;
        }
   
        // Validate Class for atleast one selection
        function ValidateClassCheckBoxList(sender, args) {
            var checkBoxList = document.getElementById("<%=txt_Class.ClientID %>");
              var checkboxes = checkBoxList.getElementsByTagName("input");
              var isValid = false;
              for (var i = 0; i < checkboxes.length; i++) {
                  if (checkboxes[i].checked) {
                      isValid = true;
                      break;
                  }
              }
              args.IsValid = isValid;
          }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <div id="loading-header">
        <div class="header-row">
            <div class="span24">
                <header>
                    <h1 class="header-main">Manage Tuts</h1>
                </header>
                <div style="padding: 7px 10px;">
                    <a href="addTuts.aspx" style="border: 1px solid; padding: 3px; text-decoration: none; color: #424A5D">&nbsp;&nbsp; Add Tuts&nbsp;&nbsp;</a>
                </div>
            </div>
        </div>
    </div>
    // Message section for success or error
    <div style="margin-top: 30px; text-align: center; width: 100%;">
        <div id="div_message" runat="server" visible="false" class="header-mainnew" style="height: 25px; width: 70%; text-align: left; padding: 0px 10px 10px 180px; margin-bottom: 10px; margin-top: 0px; vertical-align: text-top;">
            <table cellpadding="0" cellspacing="0" border="0">
                <tr>
                    <td valign="middle" width="25px">
                        <asp:Image ID="img_right" ImageUrl="images/green.png" Height="30px" Width="30px"
                            runat="server" Visible="false" />
                        <asp:Image ID="img_error" ImageUrl="images/red.png" Height="30px" Width="30px" runat="server"
                            Visible="false" />
                    </td>
                    <td valign="middle">&nbsp;&nbsp;<asp:Label ID="lblMsg" runat="server"></asp:Label>
                    </td>
                </tr>
            </table>
        </div>
        // Update Section
        <div id="div_update" runat="server" visible="false" style="text-align: left;">
            <table cellpadding="0" cellspacing="0" width="100%">
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr id="Tr1" runat="server" visible="false">
                    <td style="width: 21%; text-align: left;" class="header-mainnew">ID <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:Label ID="lbl_blogId" runat="server" class="header-mainnew"></asp:Label>
                        <br />
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">Name <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:TextBox ID="txt_TutorName" runat="server" Width="250px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required"
                            ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor" ControlToValidate="txt_TutorName"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">Tutor Image <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:FileUpload ID="FileUpload1" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">City <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:DropDownList ID="Drp_City" Width="255px" DataValueField="CityID" DataTextField="CityName"
                            DataSourceID="SqlDataSource1" runat="server">
                        </asp:DropDownList>
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connectionstring %>"
                            SelectCommand="SP_GetAllCity" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="Required"
                            InitialValue="Select" ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor"
                            ControlToValidate="Drp_City"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">Class <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <%-- <asp:TextBox ID="txt_Class" runat="server" Width="250px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Required"
                            ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor" ControlToValidate="txt_Class"></asp:RequiredFieldValidator>--%>

                        <asp:CheckBoxList ID="txt_Class" runat="server" SelectionMode="Multiple" CssClass="RedesignFrom_Class033" placeholder="Subject" DataSourceID="SqlDataSource_TutorClass"
                            DataTextField="Class" DataValueField="Class" Height="56px" RepeatColumns="3">
                        </asp:CheckBoxList>
                        <asp:CustomValidator ID="CustomValidator2" ErrorMessage="Required" Display="Dynamic" ValidationGroup="Tutor"
                            ForeColor="Red" ClientValidationFunction="ValidateClassCheckBoxList" runat="server" Font-Size="Small" />
                        <asp:SqlDataSource ID="SqlDataSource_TutorClass" runat="server" ConnectionString="<%$ ConnectionStrings:connectionstring %>"
                            SelectCommand="SP_GetAllTutorClass" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
                    </td>
                </tr>
                <tr>
                    <td height="15px"></td>
                </tr>
                <tr>
                    <td style="width: 23%; text-align: left;" class="header-mainnew">Subject <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <%--   <asp:TextBox ID="txt_Subject" runat="server" Width="250px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ErrorMessage="Required"
                            ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor" ControlToValidate="txt_Subject"></asp:RequiredFieldValidator>--%>
                        <asp:CheckBoxList ID="txt_Subject" runat="server" SelectionMode="Multiple" CssClass="RedesignFrom_Class033" placeholder="Subject" DataSourceID="SqlDataSource_GetAllSubjects"
                            DataTextField="Subject" DataValueField="Subject" Height="56px" RepeatColumns="3">
                        </asp:CheckBoxList>
                        <asp:CustomValidator ID="CustomValidator1" ErrorMessage="Required" Display="Dynamic" ValidationGroup="Tutor"
                            ForeColor="Red" ClientValidationFunction="ValidateCheckBoxList" runat="server" Font-Size="Small" />
                        <asp:SqlDataSource ID="SqlDataSource_GetAllSubjects" runat="server" ConnectionString="<%$ ConnectionStrings:connectionstring %>"
                            SelectCommand="SP_GetAllSubjects" SelectCommandType="StoredProcedure"></asp:SqlDataSource>
                        <br />
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">Phone No
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:TextBox ID="txt_phoneNo" runat="server" Width="250px"></asp:TextBox>
                        <br />
                    </td>
                </tr>
                 <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 21%; text-align: left;" class="header-mainnew">Alternate Phone No
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:TextBox ID="txt_alternatephoneno" runat="server" Width="250px"></asp:TextBox>
                        <br />
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 23%; text-align: left;" class="header-mainnew">Email ID <span style="color: Red;">*</span>
                        <br />
                    </td>
                    <td colspan="2" align="left">
                        <asp:TextBox ID="txt_EmailID" runat="server" Width="250px"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Required"
                            ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor" ControlToValidate="txt_EmailID"></asp:RequiredFieldValidator>
                        <br />
                    </td>
                </tr>
                <tr id="Tr22" runat="server">
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr id="Tr2" runat="server">
                    <td style="width: 30%; text-align: left;" class="header-mainnew">Location <%--<span style="color: Red;">*</span>--%>
                    </td>
                    <td colspan="2" align="left">
                        <asp:TextBox ID="txt_Location" runat="server" Width="250px"></asp:TextBox>
                        <%-- <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="Required"
                            ForeColor="Red" Display="Dynamic" ValidationGroup="Tutor" ControlToValidate="txt_Location"></asp:RequiredFieldValidator>--%>
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr id="Tr3" runat="server">
                    <td style="width: 30%; text-align: left;" class="header-mainnew">Description
                    </td>
                    <td colspan="2" align="left">
                        <FTB:FreeTextBox ID="txt_desc" runat="server" Width="340px" Height="200px">
                        </FTB:FreeTextBox>
                    </td>
                </tr>
                <tr>
                    <td height="5px" colspan="3">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td style="width: 20%; text-align: left;" class="header-mainnew">&nbsp;
                    </td>
                    <td align="left">
                        <table cellspacing="0" cellpadding="0">
                            <tr>
                                <td style="width: 40%; text-align: left;">
                                    <asp:Button ID="btn_submit" Width="100px" runat="server" Text="Update Tutor" ValidationGroup="Tutor"
                                        OnClick="btn_submit_Click" />
                                </td>
                                <td></td>
                                <td style="width: 40%; text-align: left;">
                                    <asp:Button ID="btn_cancel" runat="server" Text="Cancel" Width="90px" OnClick="btn_cancel_Click" />
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td style="width: 40%; text-align: left; border: hidden;">&nbsp;
                    </td>
                </tr>
            </table>
        </div>
        // Gridview Section
        <div id="Div_Image" runat="server" style="text-align: left; width: 100%; padding-left: 50px;">
            <table cellpadding="0" cellspacing="0" border="0" width="100%">
                <tr>
                    <td height="40px" style="padding-top: 5px; font-size: 15px; padding-left: 50px;">Total Tutors<span style="height: 40px; color: #000000;">(<%=grid_Tutor.Rows.Count%>)</span>
                    </td>
                    <td>
                        <asp:TextBox ID="txt_search" align="left" placeholder="Search By Tutors Name" Height="20px"
                            runat="server" Width="300px"></asp:TextBox>
                        &nbsp;
                        <asp:Button ID="btn_search" runat="server" Text="Search" OnClick="btn_search_Click"></asp:Button>
                    </td>
                </tr>
                <tr>
                    <td height="4px"></td>
                </tr>
                <tr>
                <td colspan="2" height="10px" align="left">
// Gridview
<asp:GridView ID="grid_Tutor" runat="server" Width="80%" AutoGenerateColumns="False"
  DataKeyNames="TutorID" CellPadding="3" ForeColor="#333333" GridLines="None" AllowPaging="true" PageSize="30" OnPageIndexChanging="grid_Tutor_PageIndexChanging" OnRowDataBound="grid_Tutor_RowDataBound" OnRowDeleting = "grid_Tutor_RowDeleting" OnSelectedIndexChanged="grid_Tutor_SelectedIndexChanged" OnRowCommand = "grid_Tutor_RowCommand">

 <RowStyle BackColor="#ffffff" HorizontalAlign="Center" />
 <AlternatingRowStyle BackColor="#ffffff" HorizontalAlign="Center" />
 <Columns>
 <asp:TemplateField>
 <HeaderTemplate>
         Sr. No.
 </HeaderTemplate>
 <ItemTemplate>
      <%# Container.DataItemIndex + 1 %>
       <asp:HiddenField ID="hdn_TutorID" runat="server" Value='<%# Eval("TutorID") %>' />
 </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tutor Image">
<ItemTemplate>
       <asp:Image ID="TutorImage" runat="server" Width="100px" ImageUrl =  '<%#Eval("TutorImagePath") %>' />
</ItemTemplate>
</asp:TemplateField>
 <asp:BoundField DataField="TutorName" HeaderText="Tutor Name" SortExpression="TutorName"
   HeaderStyle-ForeColor="White" />
 <asp:BoundField DataField="EmailID" HeaderText="Email ID" SortExpression="EmailID" HeaderStyle-ForeColor="White" />
 <asp:BoundField DataField="Class" HeaderText="Class" SortExpression="Class" HeaderStyle-ForeColor="White" />
  <%--<asp:BoundField DataField="Subject" HeaderText="Subject" SortExpression="Subject" />--%>
<asp:TemplateField ShowHeader="True" HeaderText="Subject" HeaderStyle-ForeColor="White">
<ItemTemplate>
         <%# Convert.ToString(Eval("Subject")).Replace(",", ", ") %>
 </ItemTemplate>
 </asp:TemplateField>
 <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" HeaderStyle-ForeColor="White" />
 <asp:TemplateField ShowHeader="True" HeaderText="Status" HeaderStyle-ForeColor="White">
 <ItemTemplate>
 <asp:ImageButton ID="status" runat="server" CommandName="Status" ImageUrl='<%#   Convert.ToBoolean(Eval("status"))?"images/green.png":"images/red.png" %>'
  Height="15px" Width="15px"></asp:ImageButton>
 </ItemTemplate>
 </asp:TemplateField>
 <asp:CommandField ButtonType="Image" HeaderText="Manage" ShowSelectButton="True"
  HeaderStyle-Font-Size="Small" SelectImageUrl="images/edit.png" />
 <asp:CommandField ButtonType="Image" HeaderText="Delete" ControlStyle-Width="16px"
                                    ControlStyle-Height="16px" DeleteImageUrl="images/delete.png" ShowDeleteButton="True" />
                            </Columns>
                            <EmptyDataTemplate>
                                Sorry, no data found as your search criteria.
                            </EmptyDataTemplate>
                            <EmptyDataRowStyle CssClass="header-mainnew2" HorizontalAlign="Left" ForeColor="Red"
                                VerticalAlign="Middle" />
                            <FooterStyle BackColor="#424A5D" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#424A5D" ForeColor="White" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#424A5D" Font-Bold="True" ForeColor="white" HorizontalAlign="Center" />
                            <EditRowStyle BackColor="#2461BF" />
                        </asp:GridView>
                    </td>
                </tr>
            </table>
        </div>
    </div>

</asp:Content>