`
lym6520
  • 浏览: 704277 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

jQuery 实现分页导航 v2.0(附demo)

    博客分类:
  • JS
阅读更多
今天整理了下之前写的分页导航条,感觉之前的那个很不灵活,执行方法传入的参数只能一个操作类型和一个当前页,想要多传入几个参数就比较麻烦,现在重新整理了下,并附上了demo,希望大家可以进来改进改进,共享资源!
/**
 * 分页导航条
 * 09/01/17
 * @author lym6520@qq.com 
 * @verson v2.0
 * @param {} fnName			翻页时执行的函数名(传入的第一个参数必须是“当前页码”))
 * @param {} fnNameParams		fnName函数的参数,数组形式(比如:var arr = new Array(); arr[0] = 1;arr[1] = "hello")
 * @param {} pagetotal			总页码
 * @param {} totalItem			总记录数
 * @param {} showID			页面显示分页导航条的div  ID
 */
function pageNavigation(fnName, fnNameParams, pagetotal, totalItem, showID) {   
    var fnParam = new Array();
    //如果这样 fnParam = fnNameParams;两个都指向同一引用
    for(var i = 0 ; i < fnNameParams.length; i++)
        fnParam[i] = fnNameParams[i];
           
     var pageIndex = parseInt(fnNameParams[0]);//当前页
       
    // 无记录  
    if (pagetotal == 0) {   
        $('#' + showID).empty();//清空翻页导航条   
        return;   
    }   
    // 分页   
    var front = pageIndex - 4;// 前面一截   
    var back = pageIndex + 4;// 后面一截   
    
    $('#' + showID).empty();//清空翻页导航条   
       
    // 页码链接   
    // 首页, 上一页   
    if (pageIndex == 1) {   
        $('#' + showID).append("首页 上一页 ");   
    } else {
        fnParam[0] = 1 ;
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
		var str = "<a href = 'javascript:" + fn + "'>首页</a> ";//创建连接
		$('#' + showID).append(str);
		
		fnParam[0] = pageIndex - 1 ;
	    var fn = fnName + "(" + fnParam + ")"; //组装执行函数         		
		var str = "<a href = 'javascript:" + fn + "'>上一页</a> ";//创建连接
		$('#' + showID).append(str);	         
    }   
  
    if (pagetotal == 1) {   
        $('#' + showID).append("1 ");   
    }   
    // 如果当前页是5,前面一截就是1234,后面一截就是6789   
    if (pagetotal > 1) {   
        var tempBack = pagetotal;   
        var tempFront = 1;   
        if (back < pagetotal)   
            tempBack = back;   
        if (front > 1)   
            tempFront = front;   
        for (var i = tempFront; i <= tempBack; i++) {   
            if (pageIndex == i) {   
                var str = " " + i + " ";   
                $('#' + showID).append(str);   
            } else {   
                fnParam[0] = i;
                var fn = fnName + "(" + fnParam + ")"; //组装执行的函数   
                var str = "<a href = 'javascript:" + fn + "'>[" + i + "]</a>";//创建连接   
                $('#' + showID).append(str);   
            }   
        }   
    }   
  
    // 下一页, 尾页   
    if (pageIndex == pagetotal) {   
        $('#' + showID).append("下一页 尾页 ");   
    } else {   
        fnParam[0] = pageIndex + 1 ;
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数   
        var str = " <a href = 'javascript:" + fn + "'>下一页</a> ";//创建连接   
        $('#' + showID).append(str);           
           
        fnParam[0] = pagetotal ;
        var fn = fnName + "(" + fnParam +  ")"; //组装执行的函数   
        var str = "<a href = 'javascript:" + fn + "'> 尾页 </a> ";//创建连接   
        $('#' + showID).append(str);           
    }   
       
    // 红色字体显示当前页   
    var str = "<font color = 'red'>" + pageIndex +"</font>";       
    $('#' + showID).append(str);   
       
    // 斜线"/"   
    $('#' + showID).append("/");   
       
    // 蓝色字体显示总页数   
    var str = "<font color = 'blue'>" + pagetotal +"</font>";      
    $('#' + showID).append(str);  
    
}

分享到:
评论
4 楼 lym6520 2010-01-07  
anywing 写道
请问页码所对应的链接具体是怎么产生的?
我的项目里面,每次点击一个页码都要重新到DAO层去取一页的数据,请问,我应该如何生成链接呢?

在例子中有个onClickPage方法,参数pageIndex就是当前页码了。你可以通过url跟参数或者更新form表单的隐藏字段来提交表单操作等。
如下:
onClickPage : function(pageIndex){
								$.fn.setCurrentPage(this,pageIndex);
								//这里进行ajax异步数据处理
								//通过提交表单,或着使用location.href
							}
3 楼 anywing 2010-01-06  
请问页码所对应的链接具体是怎么产生的?
我的项目里面,每次点击一个页码都要重新到DAO层去取一页的数据,请问,我应该如何生成链接呢?
2 楼 lym6520 2009-02-03  
bug修改:代码16行改成
fnParam[i] = "\"" + fnNameParams[i] + "\"";

这样就不会把字符串当做数字处理了,,,
1 楼 yeminping 2009-01-17  

相关推荐

    JQuery zTree 2.0 一个非常好用的jQuery树插件

    **jQuery zTree 2.0:一款高效实用的jQuery树形插件** jQuery zTree是一款基于JavaScript库jQuery的优秀树形插件,尤其在2.0版本中,它提供了丰富的功能和良好的用户体验。zTree主要适用于网站后台管理、数据展示、...

    asp.net mvc2.0+前台Jquery+IbatisNet+Castle

    在ASP.NET MVC项目中,Jquery可以用来增强前端用户体验,比如通过AJAX实现无刷新页面更新,或者通过插件如DataTables实现表格分页和排序。 IbatisNet是一个轻量级的数据访问层框架,它是MyBatis的.NET版本。与ORM...

    mvc2.0DEMO+easyUI

    例如,你可以用EasyUI的表格组件展示从MVC控制器返回的数据,通过Ajax实现异步加载和分页。控制器处理数据请求,返回JSON格式的数据,而EasyUI的表格组件则自动解析并显示这些数据。此外,EasyUI的表单组件可以用于...

    jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页

    总的来说,这个jQuery分页插件提供了一种简单而灵活的方式来实现Web2.0风格的分页功能,结合Ajax技术,使得在大数据量的页面中进行浏览变得更为便捷。通过自定义参数,开发者可以根据项目需求定制出符合设计风格的...

    MvcPager 1.5 for ASP.NET MVC 3 demo project (EN)

    支持使用jQuery实现Ajax分页,生成的Html代码更精简; 支持Ajax分页模式下,若客户端浏览器不支持或禁用Javascript功能时安全降级为普通分页 搜索引擎友好,无论是普通分页还是Ajax分页,搜索引擎都可以直接搜索到...

    net_MVC新闻发布系统demo(mvc2.0)

    9. **AJAX集成**:在.NET MVC中,可以方便地结合jQuery和其他JavaScript库实现页面的异步更新,提高用户体验。在新闻系统中,可能使用AJAX加载更多新闻或评论。 通过这个.NET MVC 2.0的新闻发布系统示例,新手可以...

    mvc3和mvc4的分页控件

    本文将详细介绍在MVC3和MVC4中实现分页的方法,并探讨两个提及的插件:MvcPager1.3Demo2.0_CN和MvcPager1.5Src3en。 1. **什么是ASP.NET MVC分页**: ASP.NET MVC(Model-View-Controller)是一个用于构建可维护和...

    Jquery开发UI模板

    这个压缩包文件“jQuery MiniUI V2_0 Demo”包含了 MiniUI 的 2.0 版本的演示示例,帮助开发者理解和学习如何使用 MiniUI 构建用户界面。 **MiniUI 主要特点:** 1. **轻量级**:MiniUI 依赖于 jQuery,体积小巧,...

    Spring2.5+Struts2.0+hibernate3.0+Dwr+jquery+displayTag

    自已写的一个demo 1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;暴露DWR,写了一个验证用户名的流程 4 采用jpa作为POJO,还是减少配置 5 加入...

    Asp.Net Mvc2 增删改查DEMO附下载

    这是一个jQuery分页插件,它可以与*** MVC完美结合,实现页面上的分页效果。 5. 控制器的作用:*** MVC的核心是M-V-C(Model-View-Controller)模式,控制器(Controller)扮演了处理用户请求和返回响应的角色。在...

    JQUERY THICKBOX弹出层插件

    这款插件基于jQuery库,兼容多种浏览器,包括Windows平台的Internet Explorer 6.0及更高版本、Firefox 2.0.0.6+、Opera 9.0+,以及Macintosh平台的Safari 2.0.4+、Firefox 2.0.0.6+和Opera 9.10+。尽管它声称对这些...

    loggrove:Loggrove是对本地、远程日志文件进行 分页阅读、实时阅读、关键词匹配、统计、监控、钉钉告警、Highcharts图表展示 的 Web 平台服务,并包含 用户认证、LDAP认证、操作审计 等基础服务

    Loggrove 是对本地、远程日志文件进行 分页阅读、实时阅读(websocket)、关键词匹配、统计、监控、钉钉告警、Highcharts趋势图展示 的 Web 平台服务,并包含 用户认证、LDAP认证、操作审计 等基础服务。 DEMO 地址...

    我记录 内容管理系统 CMS源码

    整个框架,除了jquery,没有依赖其他第三方类库; 2、绝不过度设计。简单、易学、易上手是这套框架对自己的定位。 3、从实战出发,提供了 cms/sns/forum 等大型系统的示例,经过了全面的实战检验;不像其他一些框架...

Global site tag (gtag.js) - Google Analytics