WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

MVC数据库数据分页显示

Posted on   WebEnh  阅读(970)  评论(0编辑  收藏  举报

首先从数据库获取数据

复制代码
复制代码
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>
复制代码
复制代码

 

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多