zoukankan      html  css  js  c++  java
  • 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>
    复制代码
  • 相关阅读:
    递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
    http协议传输二进制数据以及对输入流(php://input)和http请求的理解
    一个非常简单的RPC服务
    php://input 打开的数据流只能读取一次,即读取一次之后读取的值为空
    soap的简单实现(PHP)
    使用PHP的curl扩展实现跨域post请求,以及file_get_contents()百度短网址例子
    jquery选取iframe
    算法之棋盘覆盖
    词法分析之实验报告
    简单的词法分析小程序
  • 原文地址:https://www.cnblogs.com/webenh/p/6127912.html
Copyright © 2011-2022 走看看