antd中分页器如何自定义_antd自定义分页器_自定义分页器实例

本文详细介绍了在Ant Design(antd)中如何自定义分页器,包括初始化参数、逻辑判断以及生成分页HTML的过程,帮助开发者实现个性化的分页展示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def __init__(self, current_page_num, all_count, request,per_page_num=2, pager_count=11):"""封装分页相关数据

:param current_page_num: 当前访问页的数字

:param all_count: 分页数据中的数据总条数

:param per_page_num: 每页显示的数据条数

:param pager_count: 最多显示的页码个数"""

'''进行判断,如果输入的是字符串捕获之后整回第一页'''

try:

current_page_num=int(current_page_num)exceptException as e:

current_page_num=1

"""如果输入的是别的字符或者<1,直接给他第一页数据"""

if current_page_num <1:

current_page_num=1

#进行数据的实例化

self.current_page_num =current_page_num

self.all_count=all_count

self.per_page_num=per_page_num#计算实际的总页码 商和余 (pmod是内置函数)

all_pager,tmp =pmod(all_count,per_page_num)iftmp:

all_count= all_count+1self.all_pager=all_pager

self.pager_count=pager_count

#选择当前页数显示左边显示5个右边显示5个36*

self.pager_count_half= int((pager_count - 1)/2)#保存搜索条件,deepcopy深拷贝,可以添加节点

importcopy

self.params=copy.deepcopy(request.GET)'''起始页和结束也的判断

如果用户在4页,显示的数据应该是30---40 也就是:current_page_num - 1 * per_page_num'''@propertydefstart(self):return (self.current_page_num - 1) *self.per_page_num

@propertydefend(self):return self.current_page_num *self.per_page_numdefpage_html(self):#如果总页码 < 11个:

if self.all_pager <=self.pager_count:#默认显示就是第一页

pager_start = 1pager_end= self.all_pager + 1

#总页码 > 11

else:#当前页如果<=页面上最多显示11/2个页码

if self.current_page_num <=self.pager_count_half:

pager_start= 1pager_end= self.pager_count + 1

#当前页大于5

else:#页码翻到最后

if (self.current_page_num + self.pager_count_half) >self.all_pager:

pager_start= self.all_pager - self.pager_count + 1pager_end= self.all_pager + 1

else:

pager_start= self.current_page_num -self.pager_count_half

pager_end= self.current_page_num + self.pager_count_half + 1page_html_list=[]

first_page= '

首页' % (1,)

page_html_list.append(first_page)#判断是否有上一页 当前页面是1 那就是等于了,等于就设置 class="disabled" 不让选中

#否则的话就是正常显示 给参数 下一页就是当前页数 - 1

if self.current_page_num <= 1:

prev_page= '

上一页'

else:

prev_page= '

上一页' % (self.current_page_num - 1,)

page_html_list.append(prev_page)for i inrange(pager_start, pager_end):

self.params["page"] =i#如果等钱页面等于选中的页面 + class="active" 显示颜色,否则的话就是正常显示

if i ==self.current_page_num:

temp= '

%s' %(self.params.urlencode(), i)else:

temp= '

%s' %(self.params.urlencode(), i,)

page_html_list.append(temp)#判断是否有下一页 当前页面是8 总页数也是8 那就是等于了,等于就设置 class="disabled" 不让选中

#否则的话就是正常显示 给参数 下一页就是当前页数 + 1

if self.current_page_num >=self.all_pager:

next_page= '

下一页'

else:

next_page= '

下一页' % (self.current_page_num + 1,)

page_html_list.append(next_page)

last_page= '

尾页' %(self.all_pager,)

page_html_list.append(last_page)return ''.join(page_html_list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值