vue.js - Quasar中的客户端排序与服务器端分页
问题描述
我有一个表格显示带有服务器端分页的搜索结果,但是当我单击列时,没有进行排序,服务器再次显示任何列箭头单击的结果。有什么办法可以限制分页只发生在页脚中的页面箭头,然后在我单击列时对显示的结果进行排序?
<q-table
dense
:title="Patient result"
:data="searchResultList"
:columns="columns"
:pagination="serverPagination"
row-key="name"
:no-data-label="noDataMessage"
:loading="loading"
@request="request"
>
data() {
return {
filter: '',
columns: [
{
name: 'patientId',
required: true,
label: 'patientId',
align: 'left',
field: row => row.patientId,
format: val => `${val}`,
sortable: true,
}
{
name: 'lastname', align: 'center', label: 'lastname', field: 'lastname', sortable: true,
},
{
name: 'firstname', align: 'center', label: 'firstname', field: 'firstname', sortable: true,
},
{
name: 'dob', align: 'center', label: 'dob', field: 'dob', sortable: true,
},
],
page: 1,
rowsInPage: 25,
};
computed: {
serverPagination() {
return {
sortBy: this.paginationObject.sortBy,
descending: this.paginationObject.descending,
page: this.paginationObject.page,
rowsNumber: this.patientSearchResults.count,
rowsPerPage: this.paginationObject.rowsPerPage,
};
paginationObject: {
sortBy: 'name',
descending: false,
page: 1,
rowsPerPage: 25,
methods: {
request(props) {
this.$store.dispatch('patientSearch/setPaginationObject', props);
},
解决方案
使用sort-method
. 您可以编写一个自定义函数,您可以在其中传递rows
(不是全部,但根据分页,即如果选定的页面为 1,则数组中的行将是 0-5。这里我猜默认可见行将是 5。)
查看此 API 参考 - https://quasar.dev/vue-components/table
在 QTable API 中,您将找到有关此方法的详细信息。
推荐阅读
- javascript - 尝试向多个不和谐服务器发送消息
- ios - 查找数组中满足条件的总行数| 迅速
- mysql - 如何在 MySql 中运行具有多个正则表达式值的内部联接查询?
- php - 在 php 和 mysql 中使用 REST 端点进行搜索
- amazon-s3 - AWS 使用 aws CLI 获取内容
- php - 如何将 PHP 搜索栏连接到 MySQL 数据库 - 访问被拒绝
- node.js - webpack中的编译时变量,NODE_ENV有什么特别的吗?
- java - 有没有办法将一个类的 java.util.logging 级别设置为 SEVERE,但仅限于一个处理程序?
- php - 如果未在图像标签中使用,则重定向直接图像
- laravel - Laravel:如何从我创建的 webhook 访问控制器功能以捕获 Stripe 事件?