Monday, 13 April 2015

Search and Display Data In MVC WebGrid in Asp.Net MVC Using C#.Net

4/13/2015 - By Pranav Singh 9

This article will show you how you can perform search functionality and display the search result in mvc webgrid in asp.net mvc using c#.net.

So for this article first we will create an asp.net mvc application and add the now add the entity table.


Now add a new model class file and add the below code.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication1.Models
{
    public class ProductDetailModel
    {
        public List<Product> ProductList { get; set; }
    }
    public class Product
    {
        public int ID { get; set; }
        public string ProductName { get; set; }
        public string ProductDetail { get; set; }
        public int CurrentStock { get; set; }
    }
}

Now add a controller class file and the below code.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;
using System.Web.UI.WebControls;
using System.IO;
using System.Web.UI;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        [HttpGet]
        public ActionResult Index()
        {
            ProductDetailModel objproductdetailmodel = new ProductDetailModel();
            objproductdetailmodel.ProductList = ProductData("");
            return View(objproductdetailmodel);
        }
        [HttpPost]
        public ActionResult Index(string SearchKey)
        {
            ProductDetailModel objproductdetailmodel = new ProductDetailModel();
            objproductdetailmodel.ProductList = ProductData(SearchKey);
            return View(objproductdetailmodel);
        }
        ///



        /// This finction is used for providing the data.
        /// we will bind this data
        /// to diaply in grid format.
        /// You can get data from data base and
        /// thee put into collection
       ///
        public List<Product> ProductData(string SearchKey)
        {
            List<Product> objProduct = new List<Product>();
            DemoEntities objDemoEntities = new DemoEntities();
            var productItem = from data in objDemoEntities.ProductMasters
                              where SearchKey == "" ? true : data.ProductDetail.Contains(SearchKey)
                              select data;
            foreach (var item in productItem)
            {
                objProduct.Add(new Product
                {
                    ID = item.Id,
                    ProductName = item.ProductName,
                    ProductDetail = item.ProductDetail,
                    CurrentStock = (int)item.CurrentStock
                });
            }
            return objProduct;
        }
    }
}


In above code I have added the get and post both the methods. In this get method will bind the detail on page load and post method will display the search result.

Now create the view and add the below code.

@model MvcApplication1.Models.ProductDetailModel
@{
    ViewBag.Title = "Search and Display In MVC WebGrid in Asp.Net MVC Using C#.Net";
}
<style>
    table, td, th
    {
        border: 1px solid green;
        border-collapse: collapse;
    }
   
    th
    {
        border: 1px solid black;
        background-color: green;
        color: white;
    }
</style>
<script language="javascript">
    function AlertMessage() {
        alert("This is a alert message");
    }

</script>
@using (@Html.BeginForm("Index", "Home"))
{
    <table width="97%" border="0">
        <tr>
            <td align="right">
                Search by detail: @Html.TextBox("SearchKey", "")
            </td>
            <td align="left">
            <input type="submit" value="Search" />
            </td>
        </tr>
    </table>
                    var grid = new WebGrid(Model.ProductList, canSort: false);

    <div>
        @grid.GetHtml(columns:
                grid.Columns
                (
                        grid.Column("ID", "ID"),
                        grid.Column("ProductName", "Product Name"),
                        grid.Column("ProductDetail", "Product Detail"),
                        grid.Column("CurrentStock", "Current Stock")
        ), mode: WebGridPagerModes.Numeric)
    </div>
  
}

Here the name of the search textbox is same as the parameter passed in the post index method.
Now we have down run the application the check the output.

In this search will be performed on the bases of product detail.

About the Author

We are the group of people who are expertise in different Microsoft technology like Asp.Net,MVC,C#.Net,VB.Net,Windows Application,WPF,jQuery,Javascript,HTML. This blog is designed to share the knowledge.

Get Updates

Subscribe to our e-mail newsletter to receive updates.

Share This Post

9 comments:

  1. How to add form data on UI to table on UI and then pass it to Controller??

    ReplyDelete
    Replies
    1. Hi check the link
      http://www.aspdotnet-pools.com/2014/07/how-to-bind-data-to-webgrid-in-aspnet.html

      Delete
    2. hi, I am working on creating an app with search and want to render the results into the same view. when i use your approach my model object is empty and the webgrid throws a system.nullexception. Can you please help me in what needs to be done?

      Thanks

      Delete
  2. hi..It is a good post .but i think you miss the post the code of DemoEntities class.please let me know what is the DemoEntities class code.

    ReplyDelete
    Replies
    1. Hi It's the entity class file. here entity(.edmx) file name is DemoEntities

      Delete

Please let me know your view

Free Ebooks


About Us

We are the group of people who are expertise in different Microsoft technology like Asp.Net,MVC,C#.Net,VB.Net,Windows Application,WPF,jQuery,Javascript,HTML. This blog is designed to share the knowledge.

Contact Us

For writing article in this website please send request by your

GMAIL ID: dotnetpools@gmail.com

Bugs and Suggestions

As we all know that this website is for sharing knowledge and providing proper solution. So while reading the article is you find any bug or if you have any suggestion please mail us at contact@aspdotnet-pools.com.

Partners


Global Classified : Connectseekers.com
© 2014 aspdotnet-pools.com Designed by Bloggertheme9.
back to top