Fit项目分页组件的编写

项目中涉及列表显示的地方都会用到分页控件,为了能更好地与当前网站的样式匹配,此次要本身实现一个。html

因此选择了模板中提供的分页样式,基于模板改造以可以动态生成:前端

 

 

 

一 控件的行为规则工具

a) 可设置显示几个页码(默认5个,只能是奇数)单元测试

若是当前页显示5个,则默认先后各有两个,好比当前页是5,显示页码为“3 4 5 6 7测试

若是当前页在最前面,好比为1,显示页码为:1 2 3 4 5网站

一样当前页在最后面,好比为9,显示页码为:5 6 7 8 9htm

若是总页数少于5,好比只有3页,则页码所有显示:1 2 3模板

b) 关于跳转首页(<<)、尾页(>>)、上一页(<)、下一页(>)class

若是当前页是第一页,首页和上一页禁用变量

若是当前页是最后一页,尾页和下一页禁用

c) 当前页的样式要区别于其它页码

 

 

 

二 代码编写

a) 分页组件类、属性、常量

 

PAGE_COUNT为默认显示的页码数量,这里为了便于测试设置成了2;静态属性分别为当前页、总页数、数据总条数,但刚刚发现TotalPage、TotalCount其实是冗余的,二者能够互相计算得出,这要尽早重构。

 

b) 局部变量

 

根据目前的实现,须要这么一坨局部变量。startPage、endPage限定了显示页码的范围。将跳转连接放在了hrefStr,之后其它列表须要使用这个工具类时,可把hrefStr改形成属性。最后的以Attr和Href结尾的变量用于设置4个跳转按钮的禁用属性和超连接。

 

c) 核心方法

核心的方法以下,主要实现“一 控件的行为规则”中a) 所描述的规则。

 

 

d) 设置属性与Href的方法,实现了“一 控件的行为规则”中b) 所描述的规则,须要注意的坑是,<a> 标签须要禁用时,为其加上”disabled”=”true”是无论用的,这样作只是在样式上起做用。因此这儿采用的方法是经过设置href=”#”来阻止跳转(但会回到页面顶部),鼠标以上去的红圈样式使用Inspinia模板的class=”disabled”样式,这即是设置firstPageAttr等标签为”disabled”的用途

 

       

e) 返回html的方法

 

 

f) 分页组件的使用

 

在前端页面中,使用razor语法,Html元素的输出要用@Html.Raw()方法,另外由于相关的变量都是静态的,每次使用完要记得调用Reset重置状态。

 

这样本身的分页组件就实现了,本来就知道这个小小的控件很差写,通过不少次单元测试、集成测试,费了很多时间终于可以使用了。

相关文章
相关标签/搜索