项目组自己编写的js分页标签(百度分页)

/**
 *  分页工具
 */
(function($) {$.extend({PageUtil:{}})})(jQuery);

(function($) {
    $.extend($.PageUtil,{
        //默认每页条数
        _pageSize:10,
        //获取数据请求链接
        _getDataUrl:"",
        //检索条件form的Id
        _filedFormId:"",
        //显示区域的Id
        _showId:"",
        //默认显示翻页标签个数
        _showPageTagNum:5,
        //当前选中页
        _nowSelectedPageTagNum:1,
        //加载图片路径
        _loadImage:"",
        //初始化
        init: function(option){
            var $self = this;
            return $.extend(true,$self,option);
        },
        loadDataValid: function(){
            return false;
        },
        loadData: function(pageNum){
            var $self=this;
            $self.showLoadDiv();
            var flg=this.loadDataValid();
            if(flg){
                return false;
            }
            $(‘.page‘).html(‘‘);//清空分页
            var params = {};
            params["pageNumber"] = pageNum;
            params["objectsPerPage"] = $self._pageSize;
            if($self._filedFormId!=""){
                var $arrparams = $("#"+$self._filedFormId).find("input,select");
                var fields = $arrparams.serializeArray();
                $.each(fields,function(n,m){
                    params[m.name] = m.value;
                });
            }
            $.ajax({
                   type : "post",
                   async : false,
                   url : this._getDataUrl,
                   data : params,
                   success : function(data) {
                       data=JSON.parse(data);
                       data["pageNum"]=pageNum;
                       $self.genericHTML(data);
                   }
           });
        },
        genericHTML:function(data){
            var $self=this;
            $self.genericPageTag(parseInt(data.pageNum),parseInt(data.totalPage));
            $self.genericHTMLContent(data);
            $self.closeLoadDiv();
        },
        genericHTMLContent: function(json){},
        genericPageTag: function(pageNum,pageCount){
            //count:数据条数;pageNum:当前页码;pageCount:总页数
            if(pageCount<=0){
                $(‘.page‘).hide();
                return false;
            }else{
                $(‘.page‘).show();
            }
            var $self=this;
            var pageTagHTML=‘‘;
            //翻页标签拼接
            pageTagHTML+=‘<a name="firstPage">首页</a>‘;
            if(pageCount<=$self._showPageTagNum){
                pageTagHTML+=‘<span name="prePage">上一页</span>‘;
                for(var i = 1; i <= pageCount; i++){
                    pageTagHTML+=‘<a name="pageTag"  href="javascript:void(0);" attrVal="‘+i+‘"  ‘+(i == $self._nowSelectedPageTagNum ? ‘ class="Selected"‘:‘‘)+‘>‘+i+‘</a>‘;
                }
                pageTagHTML+=‘<span name="nextPage" >下一页</span>‘;
            }else{
                pageTagHTML+=‘<span name="prePageTags"><<</span>‘;
                pageTagHTML+=‘<span name="prePage">上一页</span>‘;
                var showPageTagMaxNum=pageNum-1+$self._showPageTagNum;
                if(showPageTagMaxNum<pageCount){
                    if(pageNum==1){
                        for(var i = pageNum; i <= showPageTagMaxNum; i++){
                            pageTagHTML+=‘<a name="pageTag" href="javascript:void(0);" attrVal="‘+i+‘"  ‘+(i == $self._nowSelectedPageTagNum ? ‘ class="Selected"‘:‘‘)+‘>‘+i+‘</a>‘;
                        }
                    }else{
                        for(var i = pageNum-1; i <showPageTagMaxNum; i++){
                            pageTagHTML+=‘<a name="pageTag" href="javascript:void(0);" attrVal="‘+i+‘"  ‘+(i == $self._nowSelectedPageTagNum ? ‘ class="Selected"‘:‘‘)+‘>‘+i+‘</a>‘;
                        }
                    }
                }else{
                    for(var i = pageCount-$self._showPageTagNum+1; i <= pageCount; i++){
                        pageTagHTML+=‘<a name="pageTag"  href="javascript:void(0);" attrVal="‘+i+‘"  ‘+(i == $self._nowSelectedPageTagNum ? ‘ class="Selected"‘:‘‘)+‘>‘+i+‘</a>‘;
                    }
                }
                pageTagHTML+=‘<span name="nextPage" >下一页</span>‘;
                pageTagHTML+=‘<span name="nextPageTags">>></span>‘;
            }
            pageTagHTML+=‘<a name="endPage">末页</a>‘;
            if(pageCount!=1)
            {
                $(‘.page‘).html(pageTagHTML);
            }
            //翻页标签事件绑定
            //页码翻页
            $(‘.page‘).find("a[name=pageTag]").bind("click",function(){
                var pageParam = $(this).attr("attrVal");
                pageParam =parseInt(pageParam);
                $self._nowSelectedPageTagNum=pageParam;
                $self.loadData($(this).attr("attrVal"));
            });
            //<<
            $(‘.page‘).find("span[name=prePageTags]").bind("click",function(){
                var pageParam =$(‘.page‘).find("a[name=pageTag]:first").attr("attrVal");
                pageParam =parseInt(pageParam);
                var pageFirstParam=1;
                if(pageParam-$self._showPageTagNum<1){
                    pageFirstParam=1;
                }else{
                    pageFirstParam=pageParam-$self._showPageTagNum;
                }
                $self.genericPageTag(pageFirstParam,pageCount);
            });
            //>>
            $(‘.page‘).find("span[name=nextPageTags]").bind("click",function(){
                var pageParam =$(‘.page‘).find("a[name=pageTag]:first").attr("attrVal");
                pageParam =parseInt(pageParam);
                if(pageParam+$self._showPageTagNum<=pageCount){
                    $self.genericPageTag(pageParam+$self._showPageTagNum,pageCount);
                }
            });
            //首页
            $(‘.page‘).find("a[name=firstPage]").bind("click",function(){
                $self._nowSelectedPageTagNum=1;
                $self.loadData(‘1‘);
            });
            //末页
            $(‘.page‘).find("a[name=endPage]").bind("click",function(){
                $self._nowSelectedPageTagNum=pageCount;
                $self.loadData(pageCount);
            });
            //上一页
            $(‘.page‘).find("span[name=prePage]").bind("click",function(){
                var pageParam = $(".Selected",$(‘.page‘)).attr("attrVal");
                if(pageParam==undefined){
                    pageParam=$self._nowSelectedPageTagNum;
                }
                pageParam = parseInt(pageParam);
                if(pageParam<=1){
                    return false;
                }
                $self._nowSelectedPageTagNum=pageParam-1;
                $self.loadData(pageParam-1);
            });
            //下一页
            $(‘.page‘).find("span[name=nextPage]").bind("click",function(){
                var pageParam = $(".Selected",$(‘.page‘)).attr("attrVal");
                if(pageParam==undefined){
                    pageParam=$self._nowSelectedPageTagNum;
                }
                pageParam =parseInt(pageParam);
                if(pageParam>=pageCount){
                    return false;
                }
                $self._nowSelectedPageTagNum=pageParam+1;
                $self.loadData(pageParam+1);
            });
            $self.addCheckedCss(this._nowSelectedPageTagNum,pageCount);
        },
        //显示加载图片
        showLoadDiv: function(){
             $("img[name=‘loadImg‘]").attr("style","display: block; margin-left: 310px;");
        },
        //加载图片消失
        closeLoadDiv: function(){
             $("img[name=‘loadImg‘]").attr("style","display: none; margin-left: 310px;");
        },
        addCheckedCss:function(pageNum,pageCount){
            //若当前页为第一页
            if(pageNum==1)
            {
                $(‘.page‘).find("a[name=firstPage]").attr("style","cursor:default");
                $("span[name=‘prePage‘]").attr("style","cursor:default");
            }
            else
            {
                $(‘.page‘).find("a[name=firstPage]").attr("style","cursor:pointer;color:black;");
                $("span[name=‘prePage‘]").attr("style","cursor:pointer;color:black;");
            }
            //若当前页为最后一页
            if(pageNum==pageCount)
            {
                $(‘.page‘).find("a[name=endPage]").attr("style","cursor:default");
                $("span[name=‘nextPage‘]").attr("style","cursor:default");
            }
            else
            {
                $(‘.page‘).find("a[name=endPage]").attr("style","cursor:pointer;color:black;");
                $("span[name=‘nextPage‘]").attr("style","cursor:pointer;color:black;");
            }
            //给第一批和最后一批加上对应选择样式
            var flag1=0;
            var flag2=0;
            $("a[name=‘pageTag‘]").each(function(){
                if(parseInt($(this).text())==1)
                {
                    flag1=1;

                }
                if(parseInt($(this).text())==pageCount)
                {
                    flag2=1;
                }
            });
            if(flag1==1)
            {
                $("span[name=‘prePageTags‘]").attr("style","cursor:default");
            }
            else
            {
                $("span[name=‘prePageTags‘]").attr("style","cursor:pointer;color:black;");
            }

            if(flag2==1)
            {
                $("span[name=‘nextPageTags‘]").attr("style","cursor:default");
            }
            else
            {
                $("span[name=‘nextPageTags‘]").attr("style","cursor:pointer;color:black;");
            }
        }
    });
})(jQuery);  

上面是分页标签 page.js  引入此文件。然后页面只需要传入json数据给它即可分页,写法如下

<%@ taglib prefix="c" uri="/WEB-INF/tlds/c.tld"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<meta http-equiv="X-UA-Compatible" content="IE=dege" />
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href=‘<c:url value="/assets/css/default/admin/admin.css"/>‘/>
<link rel="stylesheet" type="text/css" href=‘<c:url value="/assets/css/default/admin/experts.css"/>‘/>
<link href="<c:url value=‘/assets/css/default/admin/bootstrap-datetimepicker.min.css‘/>" rel="stylesheet"media="screen">
<link rel="stylesheet" type="text/css" href=‘<c:url value="/assets/css/default/admin/bootstrap.min.css"/>‘/>
<script type="text/javascript" src="<c:url value=‘/assets/lib/bootstrap/bootstrap.js‘/>" charset="UTF-8"></script>
<script type="text/javascript" src="<c:url value=‘/assets/lib/lang/Date.js‘/>" charset="UTF-8"></script>
<script type="text/javascript" src="<c:url value=‘/assets/lib/datetimepicker/bootstrap-datetimepicker.js‘/>" charset="UTF-8"></script>
<script type="text/javascript" src="<c:url value=‘/assets/lib/datetimepicker/bootstrap-datetimepicker.zh-CN.js‘/>" charset="UTF-8"></script>
<script type="text/javascript" src="<c:url value=‘/assets/js/page.js‘/>" charset="UTF-8"></script>
<style>
.icon2{background: url(‘<c:url value="/assets/images/default/infomation/icon2.png"/>‘);background-repeat: no-repeat; width:25px; height:25px; float:left;}
.icon_b8{background-position: 0px -175px; color:#FFF; margin-left:5px;}
.icon_b9{background-position: 0px -200px; color:#FFF; margin-left:5px;}
.icon_b10{background-position: 0px -225px; color:#FFF; margin-left:5px; cursor:pointer;}
</style>

<!--[if lt IE 9]>
        <script src=‘<c:url value="/assets/lib/bootstrap/html5shiv.min.js"/>‘></script>
        <script src=‘<c:url value="/assets/lib/bootstrap/respond.min.js"/>‘></script>
        <![endif]-->

<div class="container2" style="width: 97%; margin-left: 9px; margin-right: 0px;">
    <div class="row">
         <div style="margin-left:10px;">
            <p class="right-firstContent">
                <span>系统管理</span>
                >>
                <span>配置管理</span>
            </p>
        </div>
    </div>
    <div class="rw" style="margin-top: 30px;">
        <div class="col-md-10" style="position: relative;">
                <form id="commSysFormId">
                <table>
                    <tr>
                        <td><strong>配置项键:</strong></td>
                        <td>
                            <input type="text" id="settingKey" name="settingKey"   class="inputContent title form-control" />
                        </td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td><strong>配置项描述:</strong></td>
                        <td>
                            <input type="text" id="description" name="description"   class="inputContent title form-control" />
                        </td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
                </form>
                <div style="position:absolute;left: 600px;top:0px;">
                    <button id="searchBtn" onclick="javascript:void(0);" class="btn btn-primary selectWidth" >查  询</button>
                    <button  id="resetBtn" onclick="javascript:void(0);" class="btn btn-primary selectWidth" >重  置</button>
                </div>
        </div>
    </div>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <div class="row" style="width:98%;">
        <div style="width:98%;">
                <table  class="table table-bordered table-hover consuitDate" id="theadCenter">
                     <thead>
                        <tr class="theadCenter ">
                            <th >配置项键</th>
                            <th >配置项值</th>
                            <th >配置项描述</th>
                            <th >创建日期</th>
                            <th >修改日期</th>
                            <th >操作</th>
                         </tr>
                     </thead>
                     <tbody align="center" id="commSysParamTbId">
                    </tbody>
                </table>

        </div>
    </div>      

    <div class="page" name="pageComm" style="display:none;"></div>
</div>
<script type="text/javascript">
var $PageUtil=null;
//加载数据
function loadData(){
    $PageUtil =$.PageUtil.init({
        _getDataUrl:"<c:url value=‘/commSysParam/getCommSysParamList.do‘/>",
        //检索条件form的Id
        _filedFormId:"commSysFormId",
        //显示区域的Id
        _showId:"commSysParamTbId",
        //当前选中页
        _nowSelectedPageTagNum:1,
        genericHTMLContent:function(data){
            if(parseInt(data.totalPage)<=0){
                $("#"+this._showId).html(‘<tr><td colspan="6" style="text-align: center;"><span style="font-size: 18px;color:orange;">目前没有任何配置信息</span></td></tr>‘);
                return  false;
            }
            var strhtml="";
            $(data.list).each(function(index,dat){ 

                var createdDate= new Date(data.list[index].createdDate).format();
                var updatedDate= new Date(data.list[index].updatedDate).format();

                var value =data.list[index].settingValue;
                var description =data.list[index].description;

                if(value!=‘‘&&value!=null)
                {
                    if(value.length>10)
                    {
                        value = value.substring(0,10)+‘...‘;
                    }
                }
                else
                {
                    value="";
                }
                if(description!=‘‘&&description!=null)
                {
                    if(description.length>10)
                    {
                        description = description.substring(0,10)+‘...‘;
                    }
                }

                 var str="<tr>";
                 str +=‘<td name="needUpdateKey" style="text-align:center;vertical-align:middle;">‘+data.list[index].settingKey+‘</td>‘;
                 str +=‘<td name="needUpdateValue" title="‘+value+‘" style="text-align:center;vertical-align:middle;cursor:pointer;">‘+value+‘</td>‘;
                 str +=‘<td title="‘+data.list[index].description+‘" style="text-align:center;vertical-align:middle;">‘+description+‘</td>‘;
                 str +=‘<td style="text-align:center;vertical-align:middle;">‘+createdDate+‘</td>‘;
                 str +=‘<td style="text-align:center;vertical-align:middle;">‘+updatedDate+‘</td>‘;
                 str +=‘<td style="text-align:center;vertical-align:middle;width:180px;"><input type="button" name="btnUpdate" attrValue="‘+value+‘"    value="修改" class="btn btn-primary selectWidth" />&nbsp;&nbsp;<input type="button" disabled="disabled" attrIdBussiness="‘+data.list[index].idBussiness+‘"  name="btnSave" value="保存" class="btn btn-primary selectWidth" /></td>‘;
                 str +=‘</tr>‘

                 strhtml+=str;
             });
            $("#"+this._showId).html(strhtml);
            //修改按钮
            $("input[type=‘button‘][name=‘btnUpdate‘]").click(function(){

                var thisValue =$(this).val();//目前按钮的值      取消 和修改 2种

                var attrValue = $(this).attr("attrValue");//获得当前的值
                var attrDescription = $(this).attr("attrDescription");//获得当前的描述

                if(thisValue==‘取消‘)
                {
                    if(attrValue.length>10)
                    {
                        attrValue = attrValue.substring(0,10)+‘...‘;
                    }
                    $(this).parent().siblings("td[name=‘needUpdateValue‘]").html(attrValue);
                    $(this).parent().find("input[type=‘button‘][name=‘btnSave‘]").attr("disabled","disabled");
                    $(this).val("修改");
                }
                else if(thisValue==‘修改‘)
                {
                    $(this).parent().siblings("td[name=‘needUpdateValue‘]").html(‘<input type="text"  name="settingValueTemp" value="‘+attrValue+‘" style="width:180px;"  class="inputContent title form-control" />‘);
                    $(this).parent().find("input[type=‘button‘][name=‘btnSave‘]").attr("disabled",false);
                    $(this).val("取消");
                }

            })
            //保存按钮
            $("input[type=‘button‘][name=‘btnSave‘]").click(function(){
                var value=$(this).parent().siblings("td[name=‘needUpdateValue‘]").find("input[type=‘text‘][name=‘settingValueTemp‘]").val();
                value =$.trim(value);
                var idBussiness = $(this).attr("attrIdBussiness");//获得当前的值
                var key=$(this).parent().siblings("td[name=‘needUpdateKey‘]").text();
                qikoo.dialog.confirm("确定要修改吗?",function(){
                     $.ajax({
                        type   : "post",
                        async  : false,
                        url:"<c:url value=‘/commSysParam/updateCommSysParamByKey.do‘/>",
                        data   : {"key":key,"value":value,"idBussiness":idBussiness},
                        dataType:"json",
                        success: function (result) {
                            if(result.flag==‘Y‘)
                            {
                                loadData();
                            }
                            else
                            {
                                alert(result.msg);
                            }
                        }

                    });
                },function(){});

            })
        }
    });
    $PageUtil.loadData(‘1‘);
    return false;
}

$(function(){
    loadData();
    //查询
    $("#searchBtn").click(function(){
        loadData();
    })
    //重置
    $("#resetBtn").click(function(){
        $("#settingKey").val(‘‘);
        $("#description").val(‘‘);
    })
})

</script>
时间: 2024-11-04 04:46:06

项目组自己编写的js分页标签(百度分页)的相关文章

js实现简单百度分页和两种tab样式切换简单实现

<span style="font-family:KaiTi_GB2312;font-size:18px;">1.分页 /* *分页 */ var size = data.count; //总页数 var spage = (page - 1) < 1 ? 1 : (page - 1); var pagehtml = "<a href=\"#\" onclick=\"javascript:getBookList("

jsp页面数据分页模仿百度分页效果

<%@page import="web09.shop.DBUtil"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@ page language="java

Java标签实现分页

Java实现标签分页 最近为了开发一个网站,里面要用分页功能,但是之前很少自己写分页标签,又不想用现成框架.所以自己参考了些资料,写了个分页例子测试了一下. 代码主要分为三个类: PageTag 分页标签类 Page 分页bean Constant 设置常量 Page代码: Java代码   /** * * @author byyang * */ public class Page { private int current = 0;  //当前页,默认为第一页 private int size

详谈javaWeb分页的实现(模拟百度分页)

本文出自 http://blog.csdn.net/tjpu_lin/article/details/41050475 最近在开发一个项目,项目中有很多数据展示的模块,所以要用到分页,网上搜了很多分页的例子,但是很多实现的方法和自身的代码实例耦合度太高,导致直接拿来用根本不行. 于是自己只能亲自上阵了,关于分页实现大体逻辑是前台需要和后台相互传递页面参数(例如当前页面,页面大小,总共页数等),后台主要接受前台穿过来的pageNum(当前页码),进行数据查询,然后查完数据后返回给前台的同时也要将页

编写 Node.js Rest API 的 10 个最佳实践

Node.js 除了用来编写 WEB 应用之外,还可以用来编写 API 服务,我们在本文中会介绍编写 Node.js Rest API 的最佳实践,包括如何命名路由.进行认证和测试等话题,内容摘要如下: 正确使用 HTTP Method 和路由 正确的使用 HTTP 状态码 使用 HTTP Header 来发送元数据 为 REST API 挑选合适的框架 要对 API 进行黑盒测试 使用基于 JWT 的无状态的认证机制 学会使用条件请求机制 拥抱接口调用频率限制(Rate-Limiting) 编

java超强分页标签演示

最近在做一个项目,用到了一个分页,于是动手写了个分页标签,先将代码贴出来,供大家交流,写的不好,请见谅!. 以下是java标签类,继承自SimpleTagSupport [java] view plaincopyprint? package com.lynn.oa.tag; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.jsp.JspExcep

UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签)

UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签) 1.BaseTag(样式表和JS引入标签) 1.1. 示例 <t:base type="jquery,easyui,tools"></t:base> 1.2. 参数 属性名 类型 描述 type string JS插件类型定义如果有多个以逗号隔开 1.3.  JS插件类型 插件名 描述 Jquery 引入版本jquery-1.8.3 Easyui 引入版本jquery.easyui

AJAX实现分页--模拟百度搜索分页

第一部分:效果与分析 1.百度分页组件: 2.自己实现的分页: 3.分析: 百度搜索分页,如果总页数大于10,用户最多只能看到10页内容,不足10页显示全部,当点击下一页时,数字页标向前移动一个单位,当点击上一页时向后移动一个单位. 第二部分:后台实现: 1.实现思路: 后台的处理思想是这样的,通过AJAX向后台发送请求,携带一个分页对象PageBean传过去,查询完毕后返回一个新的PageBean对象. 前台传入的PageBean对象参数: 属性 名称 是否必须 默认值 pageSize 每页

原生JS实现排序和分页的代码

原文:原生JS实现排序和分页的代码 代码下载地址:http://www.zuidaima.com/share/1550463246568448.htm 这个也是在网上下的,开始觉得不错,不过毕竟是插件. 标签: js 分页 排序 插件 话题: Web开发 前端技术 原生JS实现排序和分页的代码