0

0

Blazor 怎么实现分页功能

畫卷琴夢

畫卷琴夢

发布时间:2026-01-24 11:27:29

|

810人浏览过

|

来源于php中文网

原创

Blazor分页推荐服务端实现,通过page和pageSize参数按需获取数据,配合Pagination组件封装页码逻辑;客户端分页仅适用于小数据量,用LINQ切片处理。需注意滚动重置、按钮禁用、输入校验及加载状态。

blazor 怎么实现分页功能

Blazor 实现分页功能,核心是控制每页显示的数据量 + 当前页码 + 总数据条数,再配合 UI 交互(上一页、下一页、跳转页码等)更新显示内容。服务端分页更常用也更高效,客户端分页适合小数据量快速预览。

服务端分页(推荐)

后端 API 按需拉取当前页数据,避免一次性加载大量数据,性能好、内存占用低。

  • 后端接口需支持 page(页码)pageSize(每页条数) 参数,返回分页结果(如 TotalCountItems
  • Blazor 组件中定义状态:int currentPage = 1;int pageSize = 10;List items = new();int totalCount = 0;
  • HttpClient 调用接口,例如:
    var result = await http.GetFromJsonAsync>($"/api/products?page={currentPage}&pageSize={pageSize}");
  • 计算总页数:int totalPages = (int)Math.Ceiling((double)totalCount / pageSize);

前端分页(适合小数据)

一次性获取全部数据,在前端按页切片展示,简单但不适用于成百上千条记录。

  • 先加载完整列表:allItems = await http.GetFromJsonAsync>("/api/products");
  • 用 LINQ 切片:items = allItems.Skip((currentPage - 1) * pageSize).Take(pageSize).ToList();
  • 总条数直接取 allItems.Count,总页数同上

分页 UI 组件(可复用)

用一个独立的 Pagination.razor 组件封装翻页逻辑,通过 EventCallback 通知父组件页码变化:

I-Shop购物系统
I-Shop购物系统

部分功能简介:商品收藏夹功能热门商品最新商品分级价格功能自选风格打印结算页面内部短信箱商品评论增加上一商品,下一商品功能增强商家提示功能友情链接用户在线统计用户来访统计用户来访信息用户积分功能广告设置用户组分类邮件系统后台实现更新用户数据系统图片设置模板管理CSS风格管理申诉内容过滤功能用户注册过滤特征字符IP库管理及来访限制及管理压缩,恢复,备份数据库功能上传文件管理商品类别管理商品添加/修改/

下载
  • 接收参数:[Parameter] public int CurrentPage { get; set; }[Parameter] public int TotalPages { get; set; }[Parameter] public EventCallback PageChanged { get; set; }
  • 生成页码按钮(带省略逻辑,如 1 … 5 6 7 8 9 … N)
  • 点击页码时触发:await PageChanged.InvokeAsync(newPage);

注意事项

分页不是只改数据显示,几个细节容易踩坑:

  • 页码变更后记得重置滚动位置(比如回到列表顶部),可用 JSRuntime.InvokeVoidAsync("scrollTo", 0, 0);
  • 禁用无效按钮:首页/上一页在 CurrentPage == 1 时禁用;末页/下一页在 CurrentPage == TotalPages 时禁用
  • 输入框跳转页码要做校验(非数字、超范围、空值),防止请求异常
  • 加载中状态建议加 IsLoading 变量 + Skeleton 或 spinner,提升体验

基本上就这些。服务端分页是主流做法,搭配一个干净的 UI 组件,就能稳定支撑各类数据列表场景。

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

198

2023.11.20

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

381

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

542

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

53

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

197

2025.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

53

2025.08.29

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

100

2025.10.23

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1072

2023.10.19

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

25

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.5万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号