如果您更喜欢将数据显示为页面而不是滚动列表 Tabulator 也可以帮助您。

有两种可用的分页形式。本地分页,其中 Tabulator 将解析所有可用数据,然后对该数据集进行分页。或者远程分页,其中 Tabulator 将通过 Ajax 从远程服务器加载单个数据页面。

启用分页后,表底部将添加一个页脚元素,其中包含一系列导航控件,可让您的用户轻松地在页面之间切换。

如果启用分页,则在创建表格时将自动加载表格的第一页。

如果您是 Laravel 用户,那么您应该会发现自动生成的 URL 和数据处理直接开箱即用,无需额外配置。

注意:在启用分页时更改过滤器、排序或切换组可见性会将表格恢复到第一页。

远程分页

要启用远程分页,请将分页选项设置为remote,并使用ajaxURL参数设置 Ajax 请求的 url 。您还可以将一个可选对象传递给ajaxParams,用于您想通过 url 传递的任何参数(这些应该是静态参数、页码等,稍后会添加)。

默认情况下,页面大小将根据远程服务器返回的数据量设置,如果您需要告诉远程服务器发送多少行,您可以设置paginationSize参数。

var table = new Tabulator("#example-table", {pagination:true, //enable paginationpaginationMode:"remote", //enable remote paginationajaxURL:"http://testdata.com/data", //set url for ajax requestajaxParams:{token:"ABC123"}, //set any standard parameters to pass with the requestpaginationSize:5, //optional parameter to request a certain number of rows per pagepaginationInitialPage:2, //optional parameter to set the initial page to load
});

请求网址

Tabulator 会在用户选择页面时自动创建页面请求 URL。

默认情况下,将使用提供的ajaxURL和一些系统生成的参数生成一个 url :

  • page - 请求的页码
  • size - 页面的行数(如果设置了paginationSize
  • sorters - 第一个当前分拣机(如果有)
  • filter - 当前过滤器的数组(如果有)

如果您需要更改任何这些参数的名称以适应您现有的系统,您可以使用paginationDataSent选项来设置备用参数名称。

var table = new Tabulator("#example-table", {pagination:true, //enable paginationpaginationMode:"remote", //enable remote paginationajaxURL:"http://testdata.com/data", //set url for ajax requestpaginationDataSent:{"page":"pageNo", //change page request parameter to "pageNo"} ,
});

自定义分页 URL 构建

如果您需要对请求 URL 进行更复杂的控制,您可以向ajaxURLGenerator选项传递一个回调,以返回您希望用于每个页面的 URL,页码和页面大小等分页信息可以在婴儿车中找到争论

var table = new Tabulator("#example-table", {ajaxURLGenerator:function(url, config, params){//url - the url from the ajaxURL property or setData function//config - the request config object from the ajaxConfig property//params - the params object from the ajaxParams property, this will also include any pagination, filter and sorting properties based on table setup//return request urlreturn url + "?params=" + encodeURI(JSON.stringify(params)); //encode parameters as a json object},
});

注意:如果您使用分页器功能,您将需要手动将排序和过滤参数添加到请求 url 中(如果需要)。

返回的响应数据

远程服务器应返回具有以下结构的 JSON 格式对象:

{"last_page":15, //the total number of available pages (this value must be greater than 0)"data":[ // an array of row data objects{id:1, name:"bob", age:"23"}, //example row data object]
}

如果您需要更改任何这些参数的名称以适合您现有的系统,您可以使用paginationDataReceived选项来设置备用参数名称。

var table = new Tabulator("#example-table", {pagination:true, //enable paginationpaginationMode:"remote", //enable remote paginationajaxURL:"http://testdata.com/data", //set url for ajax requestpaginationDataReceived:{"last_page":"max_pages", //change last_page parameter name to "max_pages"} ,
});

本地分页

本地分页的工作原理是将整个数据集加载到表中,然后生成该数据的分页视图。

分页模块默认设置为使用本地分页,因此要启用本地模式分页,简单地通过将分页选项设置为true来启用表分页。

var table = new Tabulator("#example-table", {pagination:true, //enable pagination.
});

设置页面大小

对于本地分页,有几种方法可以设置每页中的行数。

您可以通过设置paginationSize选项在表创建期间指定页面大小。如果没有指定高度选项,表格将调整大小以适应页面上的行数。

var table = new Tabulator("#example-table", {pagination:true, //enable.paginationSize:5, // this option can take any positive integer value
});

或者,如果您在 CSS 中或使用height选项指定表格的高度,并且未定义paginationSize选项,则页面大小将自动设置为填充表格的高度。

var table = new Tabulator("#example-table", {height:"300px",pagination:true, //enable.
});

注意:如果您设置表格的高度并使用paginationSize选项,则行数可能无法填满可用空间,或者无法容纳在表格中,并且会出现垂直滚动条。

设置初始页面

默认情况下,当表格最初加载时,Tabulator 将加载第一页数据。您可以使用paginationInitialPage选项指定在首次加载表时应加载特定页面。

var table = new Tabulator("#example-table", {pagination:true, //enable pagination.paginationInitialPage:2, // this option can take any positive integer value (default = 1)
});

分页控制元素

自定义分页控制元素

默认情况下,分页控件被添加到表格的页脚。如果您希望在另一个元素中创建控件,请将 DOM 节点或该元素的 CSS 选择器传递给paginationElement选项。

var table = new Tabulator("#example-table", {pagination:true,paginationElement:paginationElement, //build pagination controls in this element
});

设置分页按钮数

使用paginationButtonCount选项在页脚中显示的分页页面按钮的数量。默认情况下,它的值为 5。

var table = new Tabulator("#example-table", {paginationButtonCount:3, //use 3 page buttons in the footer
});

显示页面大小选择元素

如果您希望用户能够设置每页上的行数,您可以使用paginationSizeSelector选项,该选项会将页面大小选择选择元素添加到表格页脚。

自动生成页面大小列表

将此选项设置为true将导致 Tabulator 创建一个页面大小选项列表,这些选项是当前页面大小的倍数。在下面的示例中,列表的值为 5、10、15 和 20。

像这样使用页面大小选择器时,如果使用setPageSize函数将页面大小设置为不在列表中的值,则会使用新的页面大小作为起始值重新生成列表

var table = new Tabulator("#example-table", {pagination:true,paginationSize:5,paginationSizeSelector:true, //enable page size select element and generate list options
});

指定页面大小列表

如果要指定可用的页面大小,可以将整数数组传递给paginationSizeSelector选项。

var table = new Tabulator("#example-table", {pagination:true,paginationSize:10,paginationSizeSelector:[10, 25, 50, 100], //enable page size select element with these options
});

像这样使用页面大小选择器时,如果使用setPageSize函数将页面大小设置为不在列表中的值,它将被添加到列表顶部

您还可以将布尔值true传递到数组中,这将显示一个“全部”选项,该选项将显示一页上的所有可用行

var table = new Tabulator("#example-table", {pagination:true,paginationSize:10,paginationSizeSelector:[10, 25, 50, 100, true], //select list with an "all" option at the end of the list
});

页面大小标签

启用页面大小选择器后,它会显示在文本标签的右侧,以明确其用途。如果要更改此标签中的文本,可以通过本地化模块进行更新

添加行行为

在分页表上使用addRow函数时,将相对于当前页面(即当前页面的顶部或底部)添加行,而溢出的行将移至下一页。

如果您希望相对于表格(第一页/最后一页)添加行,那么您可以使用paginationAddRow选项。它可以采用以下两个值之一:

  • page - 添加相对于当前页面的行(默认)
  • table - 添加相对于表格的行
var table = new Tabulator("#example-table", {pagination:true,paginationAddRow:"table", //add rows relative to the table
});

管理分页

许多附加控件可用于帮助自定义分页体验。

设置当前页面

启用分页后,表格页脚将包含许多用于浏览数据的分页控件。

除了这些控件之外,还可以使用setPage函数更改页面

table.setPage(5); // show page 5

setPage函数有一个参数,它应该是代表你想看到页面的整数。还有四个字符串可以传递给特殊函数的参数。

  • "first" - 显示第一页
  • "prev" - 显示上一页
  • "next" - 显示下一页
  • "last" - 显示最后一页

setPage方法返回一个承诺,这可以用于运行具有数据已经被加载到表中后运行的任何其它命令。通过在 promise 中运行它们,您可以确保它们仅在表加载数据后运行。

table.setPage(1)
.then(function(){//run code after table has been successfuly updated
})
.catch(function(error){//handle error loading data
});

加载下一页

您可以使用nextPage函数更改为显示下一页。

table.nextPage(); // load the next page

下一页方法返回一个承诺,这可以用于运行具有数据已经被加载到表中后运行的任何其它命令。通过在 promise 中运行它们,您可以确保它们仅在表加载数据后运行。

table.nextPage()
.then(function(){//run code after table has been successfuly updated
})
.catch(function(error){//handle error loading data
});

加载上一页

您可以使用previousPage函数更改为显示下一页。

table.previousPage(); // load the previous page

|上一页方法返回一个承诺,这可以用于运行具有数据已经被加载到表中后运行的任何其它命令。通过在 promise 中运行它们,您可以确保它们仅在表加载数据后运行。

table.previousPage()
.then(function(){//run code after table has been successfuly updated
})
.catch(function(error){//handle error loading data
});

加载特定行的页面

您可以使用setPageToRow函数加载特定行的页面,并传入要滚动到的行的任何标准行组件查找选项。

table.setPageToRow(12); // load the previous page

setPageToRow方法返回一个承诺,这可以用于运行具有数据已经被加载到表中后运行的任何其它命令。通过在 promise 中运行它们,您可以确保它们仅在表加载数据后运行。

table.setPageToRow(12)
.then(function(){//run code after table has been successfuly updated
})
.catch(function(error){//handle error loading data
});

如果您有特定行的行组件,您可以调用组件上的pageTo函数来加载该行的页面。

row.pageTo(); //load page that contains row

仅限本地分页
此功能仅适用于本地分页。使用远程分页时 Tabulator 有办法查找请求的行所在的页面。

更改页面大小

您可以随时使用setPageSize函数更改页面大小。(如果使用服务器设置的页面大小进行远程分页,则此设置将被忽略)

table.setPageSize(50); // show 50 rows per page

获取页面大小

要检索每页允许的行数,您可以调用getPageSize函数:

var pageSize = table.getPageSize(); // returns number of rows allowed per page

获取当前页码

要检索当前页面,请使用getPage函数。这将返回当前页面的编号。如果分页被禁用,这将返回false

table.getPage(); // returns current page

获取最大页码

要检索最大可用页面,请使用getPageMax函数。这将返回最大可用页面的数量。如果分页被禁用,这将返回false

table.getPageMax(); // returns maximum page

回调

一系列回调可用于分页。有关更多信息,请参阅分页回调部分。

Tabulator本地分页和远程分页相关推荐

  1. vuejs实现本地数据的筛选分页

    今天项目需要一份根据本地数据的筛选分页功能,好吧,本来以为很简单,网上搜了搜全是ajax获取的数据,这不符合要求啊,修改起来太费力气,还不如我自己去写,不多说直接上代码 效果图: 项目需要:点击左侧进 ...

  2. Vue.js读取本地json文件并分页显示

    Vue.js读取本地json文件并分页显示 1.功能实现 通过axios异步加载技术读取本地的json文件内容,并通过vue.js处理数据在h5页面分页显示(这里以3行数据分页) 2.student. ...

  3. Vue3 element-ui实现Pagination分页组件--封装分页

    什么是Pagination分页组件? 在 B 端的 web 开发中,分页组件或者叫分页器,是较为常用的控件之一,通常配合表格或列表,实现数据量大的情况下,分页拆解数据的功能. 1.scrollTo和滚 ...

  4. 分页利器——pageHelper分页插件

    pageHelper插件在分页上有哪些优势? 分页插件给我们封装了很多参数,不用我们再去硬性编码获取各种参数. pageHelper封装参数如下,这个参数封装在com.github.pagehelpe ...

  5. Ipage分页和PageHelper分页

    分页插件 两个都用于分页,常用的应该是PageHelper了, 使用方法是 PageHelper.startPage()然后后边写sql就可以. 紧接着的一个sql起作用. IPage则需要在dao层 ...

  6. Git安装与使用教程-本地仓库与远程仓库内容版本管理

    一.Git 简介 Git是目前世界上最先进的分布式版本控制系统.其可以进行本地和远程两种版本控制. 本地版本控制:在本地 .git 文件夹内维护历时文件 远程仓库(如GitHub)版本控制:在本地 . ...

  7. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转

    分页源代码,分页时上一页下一页不显示,但可以跳转 $sql="select * from product where pronum like'%$key%' or pdes like '%$ ...

  8. 怎么把本地项目和远程git仓库相连通

    怎么把本地项目和远程git仓库相连通 详情参考:https://www.cnblogs.com/olive27/p/5981924.html 转载于:https://www.cnblogs.com/s ...

  9. mysql删除本机用户_mysql 不小心把root用户删除了,重建本地用户及远程用户

    一.模拟删除破坏用户: laojiang:~ # mysql -uroot -proot mysql> use mysql; mysql> select user,host from us ...

最新文章

  1. jackson中JSON字符串节点遍历和修改
  2. mysql选择数据库创建数据库
  3. hive-04-Hive函数大全
  4. [leetcode]5170. 验证二叉树
  5. 技术岗的职业规划_致程序员:30岁+的职业规划是什么?这些你必须知道!
  6. 利用xshell通过公钥私钥连接linux服务器
  7. Guri团队的侧信道攻击研究
  8. 数据结构实验报告——线性表
  9. 科技论文格式和写作技巧
  10. Error:(3, 50) java: 程序包com.n.c.caa.cds.commons.constants不存在
  11. linux磁盘列阵和文件系统
  12. 运用计算机巧记英语词汇,词根词缀法巧记考研英语词汇:词根graph-(写)
  13. Android Studio 基础控件飘红 处理办法
  14. 光纤中的多种光学模式芯径_单模光纤和多模光纤的区别特点?选择哪个好?
  15. ChatGPT的前世今生
  16. 关于jQuery中的submit事件
  17. JavaScript倒计时牌
  18. 大数据与O2O:能看到的三四线城乡互联网的未来
  19. 卷积神经网络各层的意义,卷积神经网络各层作用
  20. 如何15天之内发表一篇ei会议英文论文?

热门文章

  1. rsync搭建远程容灾备份系统
  2. nutz mysql druid_在Nutz中给Druid配置数据库加密
  3. 西门子博途1500双驱同步,伺服同步运行程序,3轴码垛博途程序
  4. Heartbleed漏洞的复现与利用
  5. oracle中decode函数详细解释,oracle中的decode函数
  6. MongoDB学习笔记(七)——MongoDB shell方法汇总
  7. 疫情之下,区块链能拯救苦苦挣扎的小微企业吗?
  8. php初学者入门视频教程下载_第101讲到112讲_张恩民老师
  9. 基于Web小区物业管理系统/物业管理系统的设计与实现
  10. 浅水声信道模型的建立