Pagination.js + Sqlite web系统分页
前端使用 jquery pagination.js 插件。
环境准备:jquery.js、pagination.js、pagination.css
附件下载:https://files.cnblogs.com/files/motion/pagination.rar
引用的顺序一定是 jquery在 pagination的前面。
然后,操作方法可以写在闭包函数里。
第一步,在自己需要展示分页控件的地方创建个div 容器
<div class="card-body rec-pat p-0">
<div id="page_focus"></div>
</div>
然后使用 pagination.js 的方法初始化组件。
$(function () {
var pageIndex = 1; //页面索引初始值
var pageSize = 8; //每页显示条数初始化,修改显示条数,修改这里即可
$("#page_focus").pagination({
dataSource: function (done) {
var result = [];
$.ajax({
cache: false,
type: "post",
dataType: "json",
url: "/Home/GetTotalFocusPageCount",
async: false,
error: function () {
//showTip("提示", "发生未知错误,课程获取失败", "error", "toast-top-right");
return false;
},
success: function (data) { for (var i = 1; i < data; i++) {
result.push(i);
}
done(result);
}
});
},
pageSize: pageSize,
totalNumber: 120,
showGoInput: true,
showGoButton: true,
callback: function (data, pagination) {
PageCallback(data, pagination);
} })
//翻页调用
function PageCallback(index, jq_page) {
initTable(jq_page.pageNumber, jq_page.pageSize);
}
})
/**init table */
function initTable(pageIndex, pageSize) { $.ajax({
cache: false,
type: "post",
dataType: "json",
url: "/Home/GetInitTable",
data: { pageIndex: pageIndex, pageSize: pageSize },
async: false,
error: function () {
//showTip("提示", "发生未知错误,课程获取失败", "error", "toast-top-right");
return false;
},
success: function (data) {
if (data != null) {
$("#selectDataBody").html("");
$("#selectDataBody").append(template("userdefine_template", data)); }
}
});
pagination初始化的方法很多,官网上有很详细的教程。这里先介绍我所使用的这种方法。
首先是 dataSource参数,这里通过后台,获取总数据条数。 这个 /Home/GetTotalFocusPageCount 路由请求后返回的结果是总记录数,是个int型变量。后台的方法根据实际需要,见仁见智,没有标准写法。
public int GetTotalFocusPageCount(string userID)
{
try
{
int toalCount = 0; string strSql = $"SELECT count(*) from MyFocus where userid='{userID}'"; DataTable dt_Sqlect = sqliteHelper.GetSelectTable(strSql); if (dt_Sqlect.Rows[0][0] != null)
{
toalCount = Convert.ToInt32(dt_Sqlect.Rows[0][0].ToString());
} return toalCount;
}
catch (Exception ex)
{
LogInfoHelper.LogError(ex.Message, userID, "GetUserFocus");
return 0;
}
}
后台返回总记录条数后,循环给数组result 赋值,然后调用 done(result);这个done 在一开始方法定义就是一个参数
function (done) {};这个是pagination 自带的写法,要注意。这个方法会帮助根据 每页的条数计算出总页数,然后渲染到页面。
到这里页面渲染都可以了。
然后就是点击下一页的事件了,
也就是 callback 回调节点
callback: function (data, pagination) {
initTable(pagination.pageNumber,pagination.pageSize);
}
/**init table */
function initTable(pageIndex, pageSize) { $.ajax({
cache: false,
type: "post",
dataType: "json",
url: "/Home/GetInitTable",
data: { pageIndex: pageIndex, pageSize: pageSize },
async: false,
error: function () {
//showTip("提示", "发生未知错误,课程获取失败", "error", "toast-top-right");
return false;
},
success: function (data) {
if (data != null) {
$("#selectDataBody").html("");
$("#selectDataBody").append(template("userdefine_template", data)); }
}
});
这里,通过ajax 向后台传参数 pageIndex和pageSize,后台根据参数查询相应页面的数据,返回数据集合,js再渲染到页面,整个分页流程就算完成了。
public string GetInitTable(int pageIndex, int pageSize)
{
try
{
pageIndex = pageIndex - 1;
string strSql_data = @$" SELECT * FROM [FinanceData] where 1=1
LIMIT {pageSize} offset {pageIndex * pageSize};"; DataTable dt_Sqlect = sqliteHelper.GetSelectTable(strSql_data); string JsonStringResult = string.Empty;
JsonStringResult = JsonConvert.SerializeObject(dt_Sqlect); return JsonStringResult;
}
catch (Exception ex)
{
LogInfoHelper.LogError(ex.Message, "GetInitTable)");
return "";
}
}
Pagination.js + Sqlite web系统分页的更多相关文章
- scroll pagination.js数据重复加载、分页问题
scroll pagination.js数据重复加载.分页问题 解决办法 参考资料: http://blog.csdn.net/dyw442500150/article/details/1753242 ...
- 无刷新分页 jquery.pagination.js
无刷新分页 jquery.pagination.js 采用Jquery无刷新分页插件jquery.pagination.js实现无刷新分页效果 1.插件参数列表 http://www.dtan.so ...
- Spring+Mybatis+jQuery.Pagination.js异步分页及JsonConfig的使用
在开发工作中经常用到异步分页,这里简单整理一下资料. 一.Controller方法 package com.lwj.controller; import javax.servlet.http.Http ...
- Spring Data Jpa+SpringMVC+Jquery.pagination.js实现分页
本博客介绍基于Spring Data这款orm框架加上Jquery.pagination插件实现的分页功能. 介绍一下Spring Data框架 spring Data : Spring 的一个子项目 ...
- js jquery.pagination.js分页
1.使用插件为 jquery.pagination.js ,如果没有这个js文件的话,我可以给发个. 首先引用 jquery.pagination.js (分页js),跟pagination.css( ...
- jquery.pagination.js分页
参数说明 参数名 描述 参数值 maxentries 总条目数 必选参数,整数 items_per_page 每页显示的条目数 ...
- (推荐)jquery.pagination.js分页
序言 本来想自己对这个分页使用做一些总结的,但发现大神们已经总结的很好了.所以给推荐一下. 转自:http://www.cnblogs.com/knowledgesea/archive/2013/01 ...
- ajax分页实现,jquery.pagination.js
1.前台使用ajax无刷新分页,主要需要生成分页的工具条,这里使用的是jquery.pagination.js 插件参数可以参考----张龙豪-jquery.pagination.js分页 下面贴出代 ...
- 分页插件pagination.js
项目中有分页功能,之前都是自己写,样式不好看,功能也简单,就找了这个插件pagination.js 页面导入pagination.js html代码 <div class="list_ ...
随机推荐
- requests的get请求基本使用
官方文档 https://docs.python-requests.org/zh_CN/latest/ 快速上手 https://docs.python-requests.org/zh_CN/la ...
- 菜鸡的Java笔记 第二十九 - java 单例设计模式
SingleCase 单例设计模式 1.单例设计模式的特点 2.多例设计模式的特点 内容 单例设计模式 现在如果说有这么一个程序类 class S ...
- c++ 中vector 常见用法(给初学者)
c++ 中 vector vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数. ca ...
- SpringCloud升级之路2020.0.x版-37. 实现异步的客户端封装配置管理的意义与设计
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 为何需要封装异步 HTTP 客户端 WebClient 对于同步的请求,我们使用 spri ...
- <C#任务导引教程>练习九
//75,异常情况using System;class Program{ public static void Main() { Console.Write("请输 ...
- [gym102832J]Abstract Painting
考虑每一个圆即对应于区间$[x_{i}-r_{i},x_{i}+r_{i}]$,可以看作对于每一个区间,要求所有右端点严格比其小的区间不严格包含左端点 用$f_{i}$表示仅考虑右端点不超过$i$的区 ...
- python网络自动化运维paramiko实验
运行环境: 物理机:win10 1903 网络设备:EVE-NG模拟器上运行思科三层路由器 网络设备OS版本:cisco ios(versions 15.6) python环境:pycharm 3.5 ...
- [NOI Online 2021 提高组] 积木小赛
思路不说了. 想起来自己打比赛的时候,没睡好.随便写了个\(HASH\),模数开小一半分都没有. 然后学了\(SAM\),发现这个判重不就是个水题. \(SAM\)是字串tire的集合体. 随便\(d ...
- Atcoder Grand Contest 002 F - Leftmost Ball(dp)
Atcoder 题面传送门 & 洛谷题面传送门 这道 Cu 的 AGC F 竟然被我自己想出来了!!!((( 首先考虑什么样的序列会被统计入答案.稍微手玩几组数据即可发现,一个颜色序列 \(c ...
- 37-Invert Binary Tree
Invert Binary Tree My Submissions QuestionEditorial Solution Total Accepted: 87818 Total Submissions ...