一个分页的HtmlHelper

 1 namespace System.Web.Mvc
 2 {
 3     public static class TianqyHtmlHelper
 4     {
 5         /// <summary>
 6         /// 分页HtmlHelper
 7         /// </summary>
 8         public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, int totalCount)
 9         {
10             pageSize = pageSize == 0 ? 3 : pageSize;
11             var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath;
12             var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
13             var outPut = new StringBuilder();
14             if (totalPages > 1)
15             {
16                 //首页
17                 if (currentPage != 1)
18                 {
19                     outPut.AppendFormat("<a class=‘pageLink‘ href=‘{0}?pageIndex=1&pageSize={1}‘>首页</a>", redirectTo, pageSize);
20                 }
21                 outPut.Append(" ");
22                 //上一页
23                 if (currentPage > 1)
24                 {
25                     outPut.AppendFormat("<a class=‘pageLink‘ href=‘{0}?pageIndex={1}&pageSize={2}‘>上一页</a>", redirectTo, currentPage - 1, pageSize);
26                 }
27                 outPut.Append(" ");
28                 //一共最多显示10个页码,前5个,后5个
29                 int n = 5;
30                 for (int i = 0; i <= 10; i++)
31                 {
32                     if ((currentPage + i - n) > 1 && (currentPage + i - n) <= totalPages)
33                     {
34                         if (i == n)
35                         {
36                             outPut.AppendFormat("<a class=‘pageCurrent‘ href=‘{0}?pageIndex={1}&pageSize={2}‘>{3}</a>", redirectTo, currentPage, pageSize, currentPage);
37                         }
38                         else
39                         {
40                             outPut.AppendFormat("<a class=‘pageLink‘ href=‘{0}?pageIndex={1}&pageSize={2}‘>{3}</a>", redirectTo, currentPage + i - n, pageSize, currentPage + i - n);
41                         }
42                     }
43                     outPut.Append(" ");
44                 }
45                 //下一页
46                 if (currentPage < totalPages)
47                 {
48                     outPut.AppendFormat("<a class=‘pageLink‘ href=‘{0}?pageIndex={1}&pageSize={2}‘>下一页</a>", redirectTo, currentPage + 1, pageSize);
49                 }
50                 outPut.Append(" ");
51                 //末页
52                 if (currentPage != totalPages)
53                 {
54                     outPut.AppendFormat("<a class=‘pageLink‘ href=‘{0}?pageIndex={1}&pageSize={2}‘>末页</a>", redirectTo, totalPages, pageSize);
55                 }
56                 outPut.Append(" ");
57             }
58             outPut.AppendFormat("第{0}页/共{1}页", currentPage, totalPages);
59             return new HtmlString(outPut.ToString());
60         }
61     }
62 }
时间: 2024-11-08 19:06:36

一个分页的HtmlHelper的相关文章

自己重构的一个分页

/// <summary> /// 分页控件(wu) /// </summary> /// <param name="RecordCount">记录数</param> /// <param name="curPage">当前页</param> /// <param name="PageSize">一页多少条数据</param> /// <para

wg_pagenation 1.0 自己写的一个分页插件_基于Jquery

前言: 现在这个分页插件也不少,感觉缺点什么,所以自己就写了一个,喜欢的人就拿去用......有bug和建议可以回复,我有空就修改和答复..... 感谢我的基友,刘总...他主要给本插件写配套主题css; 特点: 整合ajax可以异步和后台交互数据,定制化选项多.和Jquery的pagenation比较类似,但是功能更多,选择性更多. 当前版本:1.0 完成日期:20150815 效果图: White.css的效果图: default.css效果图: 上图上向下的箭头表示的是每一个可选择和更改的

jsp自定义的一个分页标签

<%@ tag language="java" pageEncoding="UTF-8"%> <%@taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%> <%@ attribute name="currentPage" type="java.lang.Long" required="

php下的一个分页类

这个分页类,参考了慕课网和燕十八的分页类. 慕课网分页类学习网址:http://www.imooc.com/learn/419 效果图: <?php class page{    public $cpage;            //传入的页码    public $totalnum;        //总的记录数,数据    public $total_page;        //总页数    public $per_page = 10;    //每页的记录数    public $sh

Hibernate+Spring+Struts2整合开发中的一个分页显示方案(转载)

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流. 1.DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{        //省略了其他的代码        /**     * 分页查询     * @

分享一个分页控件的实现思路

虽然分页控件满天飞,因为实在没找到WinForm程序合用的,所以就造了一回轮子.一开始认为这个事情比较简单,没有思考太多就开工了.事实上也没花多少时间就写好了第一版,想要有的功能也都实现了,以为万事大吉......控件的样子长这样: 软件开发法则之一:如果一件事情特别顺利,那么一定会有一些坑在等着你!坑的大小和顺利程度成正比. 果不其然,在前几天的业务模块重构时就掉分页的坑里面了,切换每页行数后总是加载两次数据.问题的原因也很简单,加载数据的事件被触发了两次.靠,看来这里业务逻辑有大问题啊!再看

使用纯js写的一个分页

上图晒效果: 网上确实有很多分页的插件以及开源代码,单本是一个后台开发猿,前台css等样式还驾驭不住,所以就开始自己去写了.其实这个分页原理很简单,就是用ajax往后台传值(当前页码),后台使用limit进行分页. 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用 这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是ajax后台以及返回的值不同而已,只要把总页码的值获取到

前端的一个分页写法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

封装一个分页函数

<?php  /**   * 分页链接生成函数   * @param int $page 当前访问的页码   * @param int $total_page 总页数   * @return string 拼接好的url地址   */ function showPage($page,$total_page){  //拼接"首页"链接 $html = '<a href="?page=1">[首页]</a>';  //拼接"上一页