AntDesign-Vue Table 查询与分页
前言
之前的增删改查小 Demo 已经快要进行到最后一步了,这节的任务是将请求数据的方式改为 分页,并且增加 分页条件查询 的功能。
页面布局
<a-table
:data-source="dataSource"
:columns="columns"
:pagination="pagination"
>
<!-- ↑ pagination 是分页功能,传入一个对象 -->
<!-- ↓ 为 a-table 组件添加个表头,里面有一个输入框和一个按钮 -->
<template #title>
<div>
<div>
<!-- 为输入框绑定事件 -->
<a-input :bordered="false" placeholder="请输入水果名称" @keydown.enter="fnc_search" id="search">
</a-input>
<!-- 为按钮绑定事件 -->
<a-button @click="fnc_search">
<!-- ↓ 一个放大镜按钮 -->
<SearchOutlined></SearchOutlined>
</a-button>
</div>
<!-- 在表格中添加数据的按钮,和这篇文章没关系 -->
<a-button @click="showAddModal">添加</a-button>
</div>
</template>
<!-- ↓ 显示图片的 template -->
<template v-slot:bodyCell="{ column, record, index}">
<template v-if="column.dataIndex === 'pic'">
<img :src="record.avatar" @click="checkInfo(record, index)"/>
</template>
</template>
</a-table>

逻辑部分
const keywords = ref("");
// ↑ 用以储存查询关键词的变量
// ↓ 分页对象
const pagination = reactive({
defaultPageSize: 8, // 默认每页显示多少个
defaultCurrent: 1,
total: 0,
current: 1,
onChange: (current: number, size: number) => {
console.log("改变了页数");
console.log("current: ", current);
console.log("size: ", size);
pagination.current = current;
getFruitsRequest(keywords.value, current, dataSource, pagination);
// getFruitsRequest 函数在 api.js 这个文件里,下面会提到
}
})
// 在挂载页面时请求数据,此时 keywords 为空字符串
onMounted(() => {
getFruitsRequest(keywords.value, 1, dataSource, pagination);
})
// ↓ 表格列数据
const columns = [
{
title: '水果名称',
dataIndex: 'fruitName',
key: 'fruitName',
},
{
title: '图片',
dataIndex: 'pic',
key: 'pic',
},
{
title: '价格 (元/公斤)',
dataIndex: 'price',
key: 'price',
},
{
title: '库存(公斤)',
dataIndex: 'stock',
key: 'stock',
},
];
/**
* 点击搜索按钮的回调
*/
function fnc_search() {
// 输入框 id 为 search
// 这里通过 js 拿到 a-input 内的数据
// 如果使用 v-model 方式的话会在输入框内数据发生改变时就改变 keyword 的值
// 导致在输入框中有内容时,没有点击搜索按钮而直接点击翻页按钮也会触发关键词搜索
if ((document.getElementById("search") as any).value === "") {
// ↓ 如果值为空则将 keywords 置空
keywords.value = "";
} else {
// ↓ 前面加一个 '/' 为了拼接 api 接口
// 例如:
// http://www.xx00.com/fruits/1/5
// ↑ 请求分页,第一页,请求五条数据
// http://www.xx00.com/fruits/apple/2/3
// ↑ 请求分页,关键词:apple,第二页,请求三条数据
keywords.value = '/' + (document.getElementById("search") as any).value;
}
getFruitsRequest(keywords.value, 1, dataSource, pagination);
// ↓ 点击搜索后,将当前页数置为1
pagination.current = 1;
}
// api.ts
import axios from "axios";
const fruitApi = axios.create({
// 设置超出响应时间
timeout: 5000
})
/**
* 分页查询
*/
export function getFruitsRequest(keywords = "", currentPage: number, dataSource: any, pagination: any) {
fruitApi({
method: 'get',
url: 'api/fruits' + keywords + '/' + currentPage + '/8'
// 默认请求 8 条数据
})
.then((resp) => {
console.log(resp.data);
// ↓ 分页查询需要 .records
dataSource.value = resp.data.records;
// ↑ 查询完成后替换数据源
pagination.total = resp.data.total;
// ↑ 改变数据总数
})
.catch((e) => {
console.log("e: ", e);
})
}
测试



AntDesign-Vue Table 查询与分页的更多相关文章
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- EF 之 MVC 排序,查询,分页 Sorting, Filtering, and Paging For MVC About EF
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 上篇博客我们学习了EF CodeFirst增删改查 ...
- MVC3 带查询的分页Helper
接上篇mvc3 分页Helper. 带查询的分页Helper是在上一篇分页的基础上来的.下面看代码: 首先,在System.Web.Mvc命名空间下的自定义类HtmlPage下面添加一个用于处理“查询 ...
- MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页
前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...
- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- Linq高级查询,分页查询及查询分页结合
一.高级查询与分页查询 1.以...开头 StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...
- 【EF6学习笔记】(三)排序、过滤查询及分页
本篇原文地址:Sorting, Filtering, and Paging 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根据自己的理解做了 ...
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- EF6 学习笔记(三):排序、过滤查询及分页
EF6 学习笔记索引目录页: ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇:EF6 学习笔记(二):操练 CRUD 增删改查 本篇原文地址:Sorting, Filterin ...
随机推荐
- midjourney 生成相似类型图片
生成类似形象 midjourney 核心就是一次运行3次图片,多尝试 上传此图片到discord里的mj -> 复制图片的link -> 使用describe拆词 也可以自己手动拆词,人工 ...
- 【BlueTooth】 小米手机蓝牙传输文件
打开小米手机的蓝牙设置,寻找电脑设备(电脑装有蓝牙设备) 同时电脑也打开蓝牙面板,两个设备都开始进行匹配: 然后电脑打开蓝牙的[接收传输文件] 手机打开图库或者文件管理,找到文件发送时选择[蓝牙] 传 ...
- 【H5】10 嵌入技术
到目前为止,您应该掌握了将图像.视频和音频嵌入到网页上的诀窍了. 此刻,让我们继续深入学习,来看一些能让您在网页中嵌入各种内容类型的元素: <iframe>, <embed> ...
- 在哲学/自然科学范畴下“推理”(reason about)的类别及解释
注意,本文的解释采用Google大模型(Gemini)的答案. 翻译: 推理是运用逻辑和证据得出结论的过程.它包含批判性地思考一个主题,考虑不同的观点,以及识别事物之间的关系.以下是推理的一些方式: ...
- 终端无人机武器的克星——部署反无人机干扰机之后 —— 武器AI化势在必行
相关: 观察者网一周军评:俄乌战争对未来无人机发展影响 俄乌战争中无人机有了突出的表现,这种类似巡飞弹的无人机工具有着高可控性.易操作.廉价.易制造等优势,依靠这种攻击性的小型无人机往往具有极高的性价 ...
- 2024年世界体育界的第一大丑闻:利昂内尔·梅西 (The biggest scandal in the world of sports in 2024: Unethical player - Lionel Messi.)
无德球员,梅西亲日辱华,不顾球迷感受,拒绝在中国的比赛中上场,并以所谓的伤病为借口,却在3天后的日本比赛中完全恢复如初,并进行了30分钟的高强度的对抗比赛并射门,可以说梅西的这一行径就是对中国亿万百姓 ...
- 国产芯片 —— 2023年龙芯最新的 3A6000 确实已经追上 2020年发布的 10代 i3酷睿 四核处理器
看新闻: https://news.cnblogs.com/n/752564/ 首先,龙芯3A6000已经有了i3酷睿10代的水平,这是十分可喜可贺的,可以说这个CPU的性能已经是国产CPU的天花板了 ...
- 【VMware ESXi】把硬盘当内存用?VMware 内存分层(Memory Tiering),你值得拥有!
VMware vSphere 8.0 U3 发布了一个非常有意义的功能叫内存分层(Memory Tiering),以利用基于 PCIe 的 NVMe 设备充当第二层(辅助)内存,从而使 ESXi 主机 ...
- .Net Aspire次体验
上次用上了在微软MVP的带领下用上了Aspire,在开发阶段隐藏了细节,什么都不用做,点个调试按钮就跑起来了,可是部署时出现了难题, 因为发布时只能选择Azure环境,为此注册了Azure,开了科网. ...
- 远程采集服务器指标信息(二)通过telnet执行远程命令
远程采集服务器信息,比如说磁盘信息.内存信息. 现介绍java通过telnet执行命令采集服务器信息,比如说执行df.ls.top. 这里在linux环境通过root或者其他用户登录执行解析方式有点出 ...