title: Using Grid.MVC versus implementing my own paging , forting and filtering logic
body: <p>I am using similar approach for doing data filtering , paging , and search  <a href="http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application" rel="nofollow">Link</a>.</p>
  
  <p>I only use the IPagedlist to do paging as third party tool, but for the filtering and search I have implemented my own code. My current approach is somehow time consuming since I need to manually add the related code if I want to include a new column to be involved in the filtering.
  But on the other hand I found the following benefits:-</p>
  
  <ol>
  <li>I have full control on the code , and I have tuned my filter, search and paging to the maximum</li>
  </ol>
  
  <p>But I came across the Grid.MVC , which seems to automate the filtering features, I have install it and I have tried it, but I can see these limitations:-
  1.  When doing paging a full refresh to the page will happen, unlike my current approach where I forced the Html.PagedListPager to do an ajax call , as follow:- </p>
  
  <pre><code>@Html.PagedListPager(Model , page =&gt; Url.Action("RackServer","Rack", new { id = ViewBag.id , page }),
                        PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(PagedListRenderOptions.ClassicPlusFirstAndLast, new AjaxOptions { UpdateTargetId = "ServerTable" , LoadingElementId="progress2" }))
  </code></pre>
  
  <ol>
  <li>I can not find a way to force the Grid.MVC to only read the records needed in the current page, as it seems the Grid.MVC will get all the records and do the paging on the server side and not on the DB side as I am currently doing.</li>
  <li>In my current approach I can force the paging and filtering to apply only for the current search criteria (when I am accessing the Index view after a search), while in the Grid.MVC I can not see a way to do so .</li>
  </ol>
  
  <p>So my question are :-</p>
  
  <ol>
  <li><p>Is it considered a bad approach to implement the filtering from scratch, rather than depending on third party tools ?</p></li>
  <li><p>Does the Grid.MVC have limitations I am not aware of ?</p></li>
  <li><p>When to use Grid.MVC and when to implement my own logic ?</p></li>
  </ol>
  
  <p>Thanks</p>