博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net mvc 无刷新高效分页
阅读量:5212 次
发布时间:2019-06-14

本文共 2387 字,大约阅读时间需要 7 分钟。

分页的原理是将本页的数据通过查询拿出来,当数据很巨大时,不用全部拿出来,影响效率。

第一步拿数据:

sql server下的分页查询:

select * from  (select *,Row_Number() over(order by id)  nums from tableName) tableName where  nums > 2 and nums < 10

检索 2-10的数据,这里必须用到子查询。因为设置 nums的条件时,nums必须为表里有的字段。

mysql下的分页查询:

SELECT *  FROM USER LIMIT 2,5

检索从3开始的5条数据,比起ms sql简单了点

 

接下来需要封装一个分页类,将分页用到的数据封装进去。封装的数据有要显示的多条数据,所以这个类就继承List<T>

public class PageinatedList
: List
{ private int pageIndex; private int pageSize; private int totalCount; private int totalPages; ///
/// 当前页码 /// public int PageIndex { set { pageIndex = value; } get { return pageIndex; } } ///
/// 每页个数 /// public int PageSize { set { pageSize = value; } get { return pageSize; } } ///
/// 数据总数 /// public int TotalCount { set { totalCount = value; } get { return totalCount; } } ///
/// 可分页数 /// public int TotalPages { set { totalPages = value; } get { return totalPages; } } public PageinatedList(IQueryable
table, int pageIndex, int pageSize) { this.PageIndex = pageIndex; this.PageSize = pageSize; this.TotalCount = table.Count(); this.TotalPages = TotalCount / PageSize; this.AddRange(table.Skip(pageIndex*PageSize).Take(PageSize)); } }

这里我用到的是linq查询,linq查询返回的是一个 IQueryable<T> 接口 下的一个子类。所以我这里构造函数就传进去一个IQueryable<T> table

 

用linq查询出来,然后封装进分页类。返回给页面。这样就能拿到数据和分页用到的属性

public ActionResult Index()        {            var select = from c in ent.学生 orderby c.学号 select c;            var pageinated = new PageinatedList
<学生>
(select,0,10); return View(pageinated); } public ActionResult Pages(int page) { var select = from c in ent.学生 orderby c.学号 select c; var pageinated = new PageinatedList
<学生>
(select, page, 10); return View(pageinated); }
function changePage(i) {        $.post("Pages?Page=" + i, function (data) {            $("#mytr").html(data);        });    }

通过ajax来改变数据。

 

转载于:https://www.cnblogs.com/sjyzz/p/7884078.html

你可能感兴趣的文章
口胡:[HNOI2011]数学作业
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
Combination Sum III -- leetcode
查看>>
中国剩余定理
查看>>
刘汝佳,竖式问题
查看>>
hdu--1029--思维题
查看>>
基础笔记一
查看>>
uva 10137 The trip
查看>>
spring 解决中文乱码问题
查看>>
Maven 介绍
查看>>
hdu 4268
查看>>
启动tomcat时cmd窗口一闪而过
查看>>
两个有序数列,求中间值 Median of Two Sorted Arrays
查看>>
vue路由的实现原理
查看>>
Java核心技术:Java异常处理
查看>>
Python 学习笔记一
查看>>
引入列表,将对话分类添加到对应列表中
查看>>
回文子串
查看>>
Count Numbers
查看>>
React——JSX
查看>>