MVC数据库数据分页显示

首先从数据库获取数据

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using mvctest.Models;



namespace mvctest.customclass

{

    

    public class getdataresource

    {

        public List<student> gd()

        {

            Model1 db=new Model1();

            var q = from p in db.Students select p;

            return q.ToList();

        }

    }

}

分页代码:网上复制的

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;



namespace mvctest

{

   // 分页器Code



 public class PagingHelper<T>

    {

        //分页数据源

        public IEnumerable<T> DataSource { get; private set; }

        //每页显示记录的数量

        public int PageSize { get; private set; }

        //当前页数

        public int PageIndex { get; set; }

        //分页总页数

        public int PageCount { get; private set; }



        //是否有前一页

        public bool HasPrev { get { return PageIndex > 1; } }

        //是否有下一页

        public bool HasNext { get { return PageIndex < PageCount; } }

        //构造函数

        public PagingHelper(int pageSize, IEnumerable<T> dataSource)

        {

            this.PageSize = pageSize > 1 ? pageSize : 1;

            this.DataSource = dataSource;

            PageCount = (int)Math.Ceiling(dataSource.Count() / (double)pageSize);

        }

        //获取当前页数据

        public IEnumerable<T> GetPagingData()

        {

            return DataSource.Skip((PageIndex - 1) * PageSize).Take(PageSize);

        }

    }

}

控制器中的代码

public ActionResult pagehelp(int pageIndex = 1)

        {

            

            getdataresource gd=new getdataresource();

            PagingHelper<student> StudentPaging = new PagingHelper<student>(3, gd.gd());

            StudentPaging.PageIndex = pageIndex;//指定当前页

            return View(StudentPaging);//返回分页器实例到视图

        }

对应视图

@using mvctest.Models

@using mvctest.customclass

@model mvctest.PagingHelper<student>





@{

    ViewBag.Title = "Pagehelper";

}

<h2>Index</h2>

@foreach (var Data in Model.GetPagingData())

{

    <p>ID:@Data.id Name:@Data.name</p>

}

<p>

    @if (Model.HasPrev)

    {

        <a href="@Url.Action("pagehelp", "test", new { pageIndex = Model.PageIndex - 1 })">上一页</a>

    }

    else

    {

        <em style="color:Gray">上一页</em>

    }

    @if (Model.HasNext)

    {

        <a href="@Url.Action("pagehelp", "test", new { pageIndex = Model.PageIndex + 1 })">下一页</a>

    }

    else

    {

        <em style="color:Gray">下一页</em>

    }

</p>

 

你可能感兴趣的:(mvc)