Next.js 分页组件
import React from 'react';
import './NxPagination.less'; export default class NxPagination extends React.Component { renderRange(startNo, endNo, foo) {
var result = [];
for (var i = startNo; i <= endNo; i++) {
result.push(foo(i));
}
return result;
} renderItem = (pno, text, pageNo) => {
var {itemRender} = this.props;
if (itemRender) {
return itemRender(pno, text, pageNo);
} if (pno === pageNo) {
return <span>{text}</span>
}
return <a href={'?pn=' + pno}>{text}</a>
}; render() {
var that = this;
var linkcount = 8;
var {total, pageSize, pageNo, itemRender} = this.props;
if (pageSize <= 0) {
pageSize = 1;
} var pageCount = parseInt(total / pageSize, 10);
if (total % pageSize > 0) {
pageCount = pageCount + 1;
} if (pageCount < 1) {
pageCount = 1;
} var startNo = 1;
var endNo = 10; if (pageCount <= linkcount) {
startNo = 1;
endNo = pageCount;
}
else { startNo = pageNo - parseInt(linkcount / 2, 10);
if (startNo <= 1) {
startNo = 1;
} endNo = startNo + linkcount - 1;
if (endNo >= pageCount) {
endNo = pageCount;
}
} return (
<div className='NxPagination'>
<div className={'firstPn pagelinkitem'}>{that.renderItem(1, 'first', pageNo)}</div>
<div className='NxPaginationUl'>
{that.renderRange(startNo, endNo, function (pn) {
if (pageNo === pn) {
return <div
className={'pagelinkitem pagelinkitemcurrent'}>{that.renderItem(pn, pn, pageNo)}</div>;
}
return <div className={'pagelinkitem'}>{that.renderItem(pn, pn, pageNo)}</div>;
})}
</div>
<div className={'lastPn pagelinkitem'}>{that.renderItem(1, 'last', pageNo)}</div>
<div className={'pageCount'}>共{pageCount}页</div>
<div className={'total'}>共{total}项</div>
<div className={'clearfloat'}></div>
</div>
)
} }
.NxPagination {
* {
box-sizing: border-box;
font-size: 12px;
}
div {
float: left;
}
div.clearfloat {
clear: both;
float: none;
}
.pagelinkitem {
font-weight: 500;
background: transparent;
border: 1px solid #d9d9d9;
text-align: center;
line-height: 32px;
min-width: 32px;
padding: 0 5px;
margin-right: 8px;
border-radius: 4px;
}
.pagelinkitemcurrent {
border-color: #379c5d;
}
a {
color: rgba(0, 0, 0, 0.65);
cursor: pointer;
}
span {
color: #379c5d;
cursor: default;
}
.pageCount, .total {
line-height: 32px;
margin-right: 8px;
}
}
Next.js 分页组件的更多相关文章
- 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...
- 基于Vue.js的表格分页组件
有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更一篇文章,分享一个自己编写的一个Vue的小组件,名叫BootPage. 不了解Vue.js的童鞋 ...
- [js开源组件开发]ajax分页组件
ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示 ...
- Vue.js的表格分页组件
转自:http://www.cnblogs.com/Leo_wl/p/5522299.html 有一段时间没更新文章了,主要是因为自己一直在忙着学习新的东西而忘记分享了,实在惭愧. 这不,大半夜发文更 ...
- JS表格分页组件:fupage的设计思路和详细使用方法(未来考虑开源,争取在2015年)
一.背景 之前在秒针工作的时候,某js高级project师写了非常多自己的组件.当中一套是分页组件.叫做st-grid. 只是在我看来,bug太多.我常常给他反馈bug,我也不清楚为啥 ...
- JS表格分页组件:fupage的设计思路和具体用法(未来考虑开源,争取在2015年)
一.背景 之前在秒针工作的时候,某js高级工程师写了很多自己的组件,其中一套是分页组件,叫做st-grid.不过在我看来,bug太多,我经常给他反馈bug,我也不清楚为啥别人没有发现. ...
- 电子商务系统的设计与实现(十三):分页组件,从前到后,从JS到Java
一.概述 学习实践Web开发5年多了,直到今天,我才算真正实现了最基本最常用的分页组件. 包括: a.前端JS异步加载并渲染: b.前端JSP.Freemarker.Struts标签渲 ...
- asp.net mvc4+mysql做一个简单分页组件(部分视图)
在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstr ...
- ReactJS实现的通用分页组件
大家多少都自己写过各种版本的分页工具条吧,像纯服务版的,纯jsWeb板的,Angular版的,因为这个基础得不能再基础的功能太多地方都会用到,下面我给出以个用ReactJS实现的版本,首先上图看下效果 ...
随机推荐
- Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not work when importing projects or updating source folders.
安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not wor ...
- spring cloud_1_mm_eureka2 eureka集群
一个eureka会出现单点故障 这里整两个 eureka--1 application.yml: #注册中心端口 server: port: 8888 #唯一标示eureka注册中心 方便互相识别 e ...
- java变量的自动提升与强制转换
所有的byte型.short型和char的值将被提升到int型 一个字节可以提升为4个字节 4个字节不可以降为一个字节 强制转换4个字节转换为一个字节 [丢失精度] byte b = 3; b = ( ...
- android textiew自定义ClickableSpan无效问题
我们有个需求,需要将一段文本中的url跳转,替换成跳转我们app的某个页面.然后就开始搞,先自定义clickspan,在设置LinkMovementMethoid, 但是不管怎么搞就是不生效. 这是我 ...
- 服务端渲染时无法获得环境变量的值,一直是undefined
1.服务端渲染时无法获得环境变量的值,一直是undefined 2.ngnix做代理以后无法无法获取node设置的cookie
- HTML5网页制作(3)
今天,就开始嵌入图片以及创建图片分区的学习吧! 这两张图片其实是我用HTML5写的(纯粹当做笔记来记了),以上就是今天要学的一些内容 下面是我今天敲的代码: [冒泡]林北的爸爸 2019/4/29 ...
- PXE高效能批量网络装机
PXE简绍 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器 ...
- [小明打联盟][斜率/单调队列 优化dp][背包]
链接:https://ac.nowcoder.com/acm/problem/14553来源:牛客网 题目描述 小明很喜欢打游戏,现在已知一个新英雄即将推出,他同样拥有四个技能,其中三个小技能的释放时 ...
- 测试miniconda,python以及机器学习包是否安装成功
1.测试安装版本 conda -V python -V 2.安装的命令 (1)库升级和安装 升级全部库: conda upgrade --all [不知道为什么,我的conda install nu ...
- sequelize 学习笔记
使用 eggjs 和 sequelize 进行开发,一些要注意的地方 1.egg 的 egg-sequelize 插件是 sequelize 的V4版本,目前已经更新到V5版本,API有一些变化,比如 ...