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_ ...
随机推荐
- CSS基础-行快属性,hover
CSS基础 1.行快属性 在css中有很多标签,分为行内标签,块标签,标签行内块标签,他们有着不同的属性. 块标签 div,ul,li,ol,h1~h6,p 可 ...
- Git项目迁移(把当前git项目迁移到新的git地址)
使用 git clone --bare 命令clone当前git git clone --bare http://gitlab.xxx/demo.git 推到新的git地址 cd demo.git g ...
- VS Code Java 更新 – 全新Gradle for Java插件,更方便的代码操作, 1.0 语言支持发布
大家好,欢迎来到 9 月版的 Visual Studio Code Java 更新.在这篇文章中,我们将分享我们最新的Gradle插件,更加方便的代码操作(Getter/Setter等等),以及最近的 ...
- 【Tool】IntelliJ IDEA 使用技巧
IntelliJ IDEA 使用技巧 2019-11-06 20:51:43 by冲冲 1.快捷键 Ctrl+w //括出相关范围 Ctrl+shift+f //按照代码段在全局搜索 Ctrl+f ...
- linux下root用户和普通用户切换
没有root权限干啥都费劲 切换root用户 sudo su 切换普通用户 su player3
- .net打独立运行环境遇到无法trim遇到的bug
背景介绍 工作中我用到kotlin写代码,在orm上ktorm是一款非常优秀的操作db的框架,我喜欢用它所以我写了一个插件能够增加我的工作效率,这款idea插件的主体逻辑是.net开发的(没错是跨平台 ...
- 百胜中国使用Rainbond实现云原生落地的实践
百胜中国使用Rainbond实现云原生落地的实践 关于百胜中国 自从1987年第一家餐厅开业以来,截至2021年第二季度,百胜中国在中国大陆的足迹遍布所有省市自治区,在1500多座城镇经营着11023 ...
- Matlab指针
Matlab指针 第一印象貌似是Matlab中不存在指针,所有变量与函数的赋值都是按值传递的,不会对参数进行修改.其实Matlab提供了handle类作为指针代替品.只要我们利用handle子类,就可 ...
- 48-Merge Sorted Array
$88. Merge Sorted Array My Submissions QuestionEditorial Solution Total Accepted: 98885 Total Submis ...
- jmeter非GUI(cmd命令行)模式的压测和输出测试报告
1.非GUI模式的压测,和GUI有啥不同? 2.非GUI模式怎么搞? 大家打开jmeter的时候,都会看到这个界面: 注意看这句话: Don't use GUI mode for load testi ...