Showing posts with label MVC. Show all posts
Showing posts with label MVC. Show all posts

Wednesday, 23 April 2014

Pagging in MVC




Pagging in MVC

View Side:
At top of the view:

@model PagedList.IPagedList<Properties>

@Html.Partial("_Pager")


_Pager.cshtml:

<div class="pagging">
    <div class="left">
        Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
        of @Model.PageCount
    </div>
    <div class="right">
        @{var action = ViewContext.RouteData.GetRequiredString("action");}
        @if (Model.HasPreviousPage)
        {
            @Html.ActionLink("First", action, new { page = 1,CategoryId =  ViewBag.CategoryId , sortBy = ViewBag.sb, IsLoggedIn = ViewBag.ls, sortOrder = ViewBag.so, Name = ViewBag.Name, Email = ViewBag.mail, Gender = ViewBag.gen, AgeFrom = ViewBag.af, AgeTo = ViewBag.at, CountryLocated = ViewBag.col, CityLocated = ViewBag.cil, IsActive = ViewBag.act, UserImage = ViewBag.pho, CountryCode = ViewBag.cc });
            @Html.Raw(" ");
            @Html.ActionLink("Prev", action, new { page = Model.PageNumber - 1,CategoryId =  ViewBag.CategoryId , sortBy = ViewBag.sb, IsLoggedIn = ViewBag.ls, sortOrder = ViewBag.so, Name = ViewBag.Name, Email = ViewBag.mail, Gender = ViewBag.gen, AgeFrom = ViewBag.af, AgeTo = ViewBag.at, CountryLocated = ViewBag.col, CityLocated = ViewBag.cil, IsActive = ViewBag.act, UserImage = ViewBag.pho, CountryCode = ViewBag.cc });
        }
        else
        {
            <span>First</span>
            @Html.Raw(" ");
            <span>Prev</span>
        }
        @if (Model.HasNextPage)
        {
            @Html.ActionLink("Next", action, new { page = Model.PageNumber + 1,CategoryId =  ViewBag.CategoryId , sortBy = ViewBag.sb, IsLoggedIn = ViewBag.ls, sortOrder = ViewBag.so, Name = ViewBag.Name, Email = ViewBag.mail, Gender = ViewBag.gen, AgeFrom = ViewBag.af, AgeTo = ViewBag.at, CountryLocated = ViewBag.col, CityLocated = ViewBag.cil, IsActive = ViewBag.act, UserImage = ViewBag.pho, CountryCode = ViewBag.cc });
            @Html.Raw(" ");
            @Html.ActionLink("Last", action, new { page = Model.PageCount,CategoryId =  ViewBag.CategoryId , sortBy = ViewBag.sb, IsLoggedIn = ViewBag.ls, sortOrder = ViewBag.so, Name = ViewBag.Name, Email = ViewBag.mail, Gender = ViewBag.gen, AgeFrom = ViewBag.af, AgeTo = ViewBag.at, CountryLocated = ViewBag.col, CityLocated = ViewBag.cil, IsActive = ViewBag.act, UserImage = ViewBag.pho, CountryCode = ViewBag.cc });
        }
        else
        {
            <span>Next</span>
            @Html.Raw(" ");
            <span>Last</span>
        }
    </div>
</div>

Controller Side:

var users = new PostRepository().GetUserPictures(objPro_PictureMaster);
            const int pageSize = 10;
            var pageNumber = (objPro_PictureMaster.page ?? 1);
            ViewBag.TotalUsers = users.Count();
            var enumerable = users as IList<Pro_PostMaster> ?? users.ToList();
            ViewBag.FilteredCount = enumerable.Count();
            ViewBag.CategoryDropDownList = categoryBind(CategoryId);
            return View(enumerable.ToPagedList(pageNumber, pageSize));

DropdownList bind and get detail





DropdownList bind and get detail


Calling Statement:

 ViewBag.CategoryDropDownList= categoryBind(0);



Method:

public List<SelectListItem> categoryBind(int CategoryId)
        {
            List<SelectListItem> CategoryDropDownList = new List<SelectListItem>();
            List<Category> CategoryList = new PostRepository().GetAllCategory();
            foreach (var item in CategoryList)
            {
                if (item.CatId == CategoryId)
                {
                    CategoryDropDownList.Add(new SelectListItem { Text = item.CatName, Value = Convert.ToString(item.CatId), Selected=true});
                }
                else
                {
                    CategoryDropDownList.Add(new SelectListItem { Text = item.CatName, Value = Convert.ToString(item.CatId)});
                }
            }
            return CategoryDropDownList;
        }

View Side:
<script>
        var jqListUser = jQuery.noConflict();
        jqListUser(document).ready(function () {
            jqListUser('#CategoryDropDownList').change(function () {               
                list = jqListUser1(this);
                var listvalue = list.val();
                document.getElementById("dropdownselectedid").click();
            });
        });
</script>
@using (Html.BeginForm("ListUserPictures", "Picture", FormMethod.Post, new { id = "formUserpicture" }))
 {
@Html.DropDownList("CategoryDropDownList")
   <input type="submit" id="dropdownselectedid" name="dropdownselectedid"   style="display:none" />
}
Fetching Data(Post Method):
CategoryId = Convert.ToInt32(Request.Form["CategoryDropDownList"]);