当前位置:网站首页>关于数据分页显示
关于数据分页显示
2022-08-11 04:07:00 【iiYcyk】
为什么这样写的原因
一般来说我们进行分页显示数据时是利用上一页、下一页以及首页末页来进行请求接口然后进行局部刷新,这次分享的一个基础的功能接口实现,通过页面的点击上下按钮来进行数据的传递,或者是现在越来越多的前后端分离的实现,页面给我们提供了很好的框架来进行分页功能数据显示的实现,提供了很多分页的工具,所以这次来分享一个较为原生的分页功能提供学习。
具体实现
系统的构建我就不多说了,直接从接口处实现开始,也就是控制层来进行的操作,这次例子是以ssm框架作为基础,数据库我用的是mysql说明。(如果不熟悉框架的,可以换成底层的jdbc和servlet来实现)
首先是mybatis的sql代码书写(mysql的分页),不同的数据库对分页查询的语句有所不同,
<select id="queryByPage" parameterType="map" resultType="Gamemer">
select * from gt_gamemer limit #{start},#{pageSize}
</select>
核心部分的controller
@RequestMapping("/queryByGPage")
@ResponseBody
public List<Gamemer> queryByGPage(String page){
System.out.println("page:"+page);
int sp = Integer.parseInt(page);
int totals = gamemerService.getTotals(Gamemer.class);
int pageSize = 6;
int pageCounts = totals / pageSize;
if (totals % pageSize != 0) {
pageCounts++;
}
if (sp > pageCounts) {
sp = pageCounts;
}
if (sp < 1) {
sp = 1;
}
System.out.println("sp:"+sp);//这里是为了可以看到是哪一页
List<Gamemer> list = gamemerService.queryByPage(Gamemer.class, sp, pageSize);
for(Gamemer g:list ) {
System.out.println(g);//这里是为了打印显示数据
}
return list;
}
页面基础布局以及请求,利用Ajax来进行请求接口
(列表数据动态生成)
<div id="shopList">
<table id="listTable" style="background-color: white;" class="table table-hover">
<!-- 列表 -->
</table>
<!-- 分页 -->
<div id="page"><nav>
<ul class="pagination pagination-sm">
<li>
<a href="#" aria-label="Previous" onclick="showLast()">
<span id="sl" aria-hidden="true">L</span>
</a>
</li>
<li>
<a href="#" aria-label="Next" onclick="showNext()">
<span id="sn" aria-hidden="true">N</span>
</a>
</li>
</ul>
</nav></div>
</div>
利用点击事件来进行实现:
var pp = 1;//这里注意:加载时默认设置第一页,将页码数定义成全局变量
$.ajax({
url:"Gamemer/queryByGPage",
type:"post",
data:"page="+pp,
dataType:"json",
success:function(result){
for(var i=0;i<result.length;i++){
(function(num) {
var rows = result[num];
var aa = rows.name.split(" ").join("");
$("#listTable").append("<tr><td><img width='90px' src='./image/"+rows.logo+"'/></td><td><a href='"+aa+".jsp' onclick='showGame(this)'>"+rows.name+"<a/></td><td>¥"+rows.price+"</td></tr>");
})(i);
}
}
});
//分页操作
function showLast(){
pp = pp - 1;
if(pp < 1){
pp = 1;
}
var fuhao = $("#sl").html();
console.log("符号:"+fuhao);
$("#listTable").html(" ");
$.ajax({
url:"Gamemer/queryByGPage",
type:"post",
data:"page="+pp,
dataType:"json",
success:function(result){
for(var i=0;i<result.length;i++){
var rows = result[i];
var aa = rows.name.split(" ").join("");
$("#listTable").append("<tr><td><img width='90px' src='./image/"+rows.logo+"'/></td><td><a href='"+aa+".jsp' onclick='showGame(this)'>"+rows.name+"<a/></td><td>¥"+rows.price+"</td></tr>");
}
}
});
}
function showNext(){
if(pp < 3){ //这里的3不应该是写死,我们需要获取到数据的总页数,然后让当前页和总页数比较,如果大于总页数,将当前页等于最大页码数,这里只是举例说明
pp = pp + 1;
}
console.log("page:"+pp);
var fuhao = $("#sn").html();
console.log("符号:"+fuhao);
$("#listTable").html(" ");
$.ajax({
url:"Gamemer/queryByGPage",
type:"post",
data:"page="+pp,
dataType:"json",
success:function(result){
for(var i=0;i<result.length;i++){
var rows = result[i];
var aa = rows.name.split(" ").join("");
$("#listTable").append("<tr><td><img width='90px' src='./image/"+rows.logo+"'/></td><td><a href='"+aa+".jsp' onclick='showGame(this)'>"+rows.name+"<a/></td><td>¥"+rows.price+"</td></tr>");
}
}
});
}
方法比较重复,可以自行封装,然后在后台判断是进行上一页还是下一页。因为前段提供的框架有分页的插件,所以很多人用了框架之后,对原生的可能一下子短路,这里提供一个参考思路的分享,对于上一页或者下一页可以利用一个事件,然后在后台进行处理操作。
说明
我自己开发也是用到的框架越来越多,所以很多原生的也可能会忘记,我会把自己忘记的,利用原生的来进行实现,提供一个参考,当然我写的东西不一定是对的,希望大家在用到框架的时候,不要忘记原生的一些重要技术点和知识,欢迎指出不足之处,谢谢观看~!
边栏推荐
- App Basic Framework Construction丨Log Management - KLog
- [FPGA] day19- binary to decimal (BCD code)
- Enter the starting position, the ending position intercepts the linked list
- Basic understanding of MongoDB (2)
- C语言 recv()函数、recvfrom()函数、recvmsg()函数
- 这些云自动化测试工具值得拥有
- 如何进行AI业务诊断,快速识别降本提效增长点?
- 【FPGA】设计思路——I2C协议
- 【FPGA】SDRAM
- "104 Maximum Depth of Binary Trees" in LeetCode's Day 12 Binary Tree Series
猜你喜欢

机器学习中什么是集成学习?

【力扣】22.括号生成

Interchangeability and Measurement Techniques - Tolerance Principles and Selection Methods

Qnet Weak Network Test Tool Operation Guide

Use jackson to parse json data in detail

What is machine learning?Explain machine learning concepts in detail

【深度学习】基于卷积神经网络的天气识别训练

How to learn machine learning?machine learning process

LeetCode814 Math Question Day 15 Binary Tree Series Value "814 Binary Tree Pruning"

校园兼职平台项目反思
随机推荐
北湖区燕泉街道开展“戴头盔·保安全”送头盔活动
rub the heat - do not open
What is Machine Reinforcement Learning?What is the principle?
Callable实现多线程
Audio codec, using FAAC to implement AAC encoding
MYSQLg高级------聚簇索引和非聚簇索引
Uni - app - access to Chinese characters, pinyin initials (according to the Chinese get pinyin initials)
(转)JVM中那些区域会发生OOM?
电力机柜数据监测RTU
Alibaba Cloud releases 3 high-performance computing solutions
【FPGA】day21-移动平均滤波器
《卫星界》刊评“星辰大海”计划:孙宇晨为太空旅游带来新的机遇
Read the article, high-performance and predictable data center network
【FPGA】day22-SPI protocol loopback
MYSQLg advanced ------ return table
洛谷P4032 火锅盛宴
2022-08-10 The sixth group Hiding spring study notes
【实战场景】商城-折扣活动设计方案
How to learn machine learning?machine learning process
What are port 80 and port 443?What's the difference?