利用jQuery中的ajax分页实现代码_jquery

本文实例讲解了用jQuery中的ajax分页相关代码,分享给大家供大家参考,具体内容如下

把分页封装到一个jsp里,那么大家就可以通过include的方式引入分页的页面这里起名为page_ajax.jsp
本人封装后,使用者需要在页面中引入page_ajax.jsp,并且在查询列表的时候,点击按钮,调用自定义的方法,如myFunction(),在这个方法里头,调用自己拓展的jquer方法,$.pageAjax(url,functionName,showDIv);
这里的url是你要请求的ajax的url,functionName为你要得到回调数据后处理拼串给tbody动态赋值的方法,而showDIv是你隐藏的div。
也就是这样写即可:

function pageAjax(){
 var url="${ctx}/system/conProductInfo/listOfAjax.action";
 $.pageAjax(url,"productMessageDiv","showList");
 }

productMessageDiv:这个就是你预先隐藏的div如下:

<div style="display: none;">
 <div id="productMessageDiv" class="showParentDiv" style="width:950px;height:400px">
  <div id="showProductListMsg">
   <div class="grayBg">
    <div id="toolbarScroll">
    <span>
     <input type="button" value=" 确定 " onclick="submitProductMessage();"/>
     <input type="button" value=" 取消 " onclick="closeProduct();"/>
     <input type="button" value=" 查询 " onclick="selectProduct();" />
     <input id="value" name="value" type="text" class="width_132"/>
     <select id="key" name="key" class="width_115">
     </select>
    </span>
    </div>
   <div class="page" id="page">
    <jsp:include page="/portal/common/page/page_ajax.jsp"/>
   </div>
   <div class="clearFloat"></div>
   </div>
  <div class="scrollInfo">
   <div class="tableInfo" style="overflow-y:scroll; height:365px;">
    <table id="dragTable" border="0" cellpadding="0" cellspacing="0" id="listTable">
    <thead>
     <tr>
     <td width="4%">
      <input type="checkbox" id="selectallCheckBox" onclick="selectListall();"/>
     </td>
     <td width="%">产品编码</td>
     <td width="%">产品名称</td>
     <td width="%">产品型号</td>
     <td width="%">产品品牌</td>
     <td width="%">产品分类</td>
     <td width="%">供应商</td>
     <td width="%">产品规格</td>
     </tr>
    </thead>
    <tbody id="msgContent"> 

    </tbody>
    </table>
   </div>
  </div> 

showList这个就是你得到回调数据调用的方法:

function showList(data){
 var list=data.list;
  var str;
  if(list==""||list==null){
  str="<tr><td colspan=\"9\"><span class=\"tip\">系统无纪录!</span></td></tr>";
  }else{
  for(var i=0;i<list.length;i++){
  str=str+" <tr id=\"contentTr"+i+"\"><td><input name=\"selectIds\" type=\"checkbox\" value=\""+list[i].id+"\"/></td><td>"+list[i].productCode+"</td><td>"+list[i].productName+"</td><td>"+list[i].productType+"</td><td>"+list[i].brandName+"</td><td>"+list[i].typeName+"</td><td>"+list[i].companyShortname+"</td><td>"+list[i].productCode+"</td></tr>";
  }
  }
  if($('#key').val()==""||$('#key').val()==null)$('#key').append("<option value='productName'>产品名称</option><option value='productCode'>产品编号</option>");
  $("#msgContent").empty();
  $("#msgContent").append(str);
 } 

复杂点的东西在page_ajax.jsp里头

var ajaxUrl;
var showDivName;
var ajaxFunctionName;
jQuery.extend({
 pageAjax: function(url,div,functionName){
 ajaxUrl=url;
 showDivName=div;
 ajaxFunctionName=functionName;
 $.ajax({
  url:url,
  data:{"pageRequest.page":$('#pagePage').val(),"pageRequest.rows":$('#pageRows').val()},
  dataType: "json",
  success: function(data){
  eval(functionName+"(data)");
  $.changePageAjax(data);
  showWin(div);
  }
 });
 },
 pageAjaxOfParam: function(url,div,functionName,key,value){
 $.ajax({
  url:url,
  data:{"pageRequest.page":$('#pagePage').val(),"pageRequest.rows":$('#pageRows').val(),"key":key,"value":value},
  dataType: "json",
  success: function(data){
  eval(functionName+"(data)");
  $.changePageAjax(data);
  showWin(div);
  }
 });
 }
 ,
 changePageAjax: function(data) {
 var totalCount = data.totalCount;
 changeDefaultRows(data);
 var pageCount = totalCount % parseInt($("#pageRows").val())== 0 ?
   parseInt(totalCount/parseInt($("#pageRows").val())):
   parseInt(totalCount/parseInt($("#pageRows").val()))+1;
 $("#totalPage").html(pageCount+'');
 $("#totalCount").html(totalCount+'');
 changeButton(pageCount);
 }
}); 

function changePage(pageTitle) {
 if(pageTitle == "previous"){
 $('#pagePage').val(parseInt($('#pagePage').val()) - 1);
 }else if(pageTitle == "next"){
 $('#pagePage').val(parseInt($('#pagePage').val()) + 1);
 }else if(pageTitle == "first"){
 $('#pagePage').val(1);
 }else if(pageTitle == "last"){
 var totalCount = parseInt($('#totalCount').html());
 $('#pagePage').val(parseInt((totalCount - 1) / parseInt($('#pageRows').val()) + '') + 1);
 }
 go();
} 

function goToPointedPage(){
 var pointedPageNum = $('#forwardPageNum').val();
 var patrn = /^\+?[1-9][0-9]*$/;
 if(!patrn.exec(pointedPageNum)){
 alert('页数请输入正整数');
 return;
 }
 if(parseInt(pointedPageNum) > parseInt($('#totalPage').html())){
 alert('输入页数不得超过最大页数');
 return;
 }
 $('#pagePage').val(parseInt(pointedPageNum));
 go();
} 

function changeButton(pageCount){
 $('#forwardPageNum').val($('#pagePage').val());
 if(pageCount == 1){
 $("#beforePage").attr("disabled","disabled");
 $("#firstPage").attr("disabled","disabled");
 $("#nextPage").attr("disabled","disabled");
 $("#lastPage").attr("disabled","disabled");
 }else if($("#forwardPageNum").val() < pageCount){ //如果页数比总页数小,则下一页和末页能用
 $("#nextPage").removeAttr("disabled");
 $("#lastPage").removeAttr("disabled");
 if($("#forwardPageNum").val() >1){ //如果页数大于1,说明 1<页数<总页数 说明全部都可用
  $("#firstPage").removeAttr("disabled");
  $("#beforePage").removeAttr("disabled");
 }else{     //在页数比总页数小的其他情况下,就只存在一种就是等于1
  $("#firstPage").attr("disabled","disabled"); //当等于1 的时候,首页和上一页不可用
  $("#beforePage").attr("disabled","disabled");
 }
 } else{
 $("#beforePage").removeAttr("disabled");
 $("#firstPage").removeAttr("disabled");
 $("#nextPage").attr("disabled","disabled");
 $("#lastPage").attr("disabled","disabled");
 }
} 

function changeDefaultRows(data){
 if($("#pageRows").val()==null||$("#pageRows").val()==""){
 $("#pageRows").empty();
 $("#pageRows").append("<option value='"+data.pAGESIZES[0]+"'>默认条数</option><option value='"+data.pAGESIZES[1]+"'>"+data.pAGESIZES[1]+"</option><option value='"+data.pAGESIZES[2]+"'>"+data.pAGESIZES[2]+"</option>");
 }
} 

function changeRows(){
 $('#pagePage').val(1);
 go();
}
function go(){
 $.pageAjax(ajaxUrl,showDivName,ajaxFunctionName);
} 

function clearPageInfo(){
 $("#pagePage").val('1');
} 

$(function(){
 $("body").keydown(function(event){
  if(event.keyCode == 13){
  goToPointedPage();
 }
 });
}); 

</script>
<div class="toolbarScroll">
 <s:hidden name="pageRequest.page" id="pagePage"/>
 <input id="firstPage" value=" 首页 " type="button" onclick="changePage('first')"/>
 <input id="beforePage" value=" 上一页 " type="button" onclick="changePage('previous')"/>
 <input size="6" maxlength="3" id="forwardPageNum" class="formStylePage" onblur="goToPointedPage()" value="" type="text" style="text-align: center;"/>/
 <span class="currentPage" id="totalPage">
 </span>
 <input id="nextPage" value=" 下一页 " type="button" onclick="changePage('next')"/>
 <input id="lastPage" value=" 末页 " type="button" onclick="changePage('last')"/>
 共<span id="totalCount"></span>条
 <span>
 <select id="pageRows" name="pageRequest.rows" onchange="changeRows()"></select>
 </span>
</div>

要明白ajax请求的时候是刷新你特定的部门,我一开始就在这里出了问题。其实在做分页的时候,给后台传值,只是当前页和每页的显示个数,其他没了,分页的按钮和下方的列表是分离的,不用去联系,这样能使问题简单。时间有限就这样了,仔细看代码就可以了。

想要了解更多内容请参考专题:《jquery分页功能操作》

以上就是本文的全部内容,希望对大家学习jquery程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
ajax分页
jquery实现ajax分页、如何利用ajax实现分页、利用ajax实现分页、jquery ajax分页插件、jquery ajax分页,以便于您获取更多的相关知识。

时间: 2024-08-03 21:05:07

利用jQuery中的ajax分页实现代码_jquery的相关文章

用jQuery中的ajax分页实现代码_jquery

功能简介:主要功能就是分页显示数据了,可在配置文件中配置每页要显示的页码,可以做多条件联合查询,这里只是做一个简单的查询.欢迎拍砖,有问题的还望大虾们斧正哈.看看这个效果图,无刷新的噢!! 具体实现请看源码: 1.aspx页面 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxPage.aspx.cs" Inherits="Measur

jquery实现的伪分页效果代码_jquery

本文实例讲述了jquery实现的伪分页效果代码.分享给大家供大家参考,具体如下: 这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期待大家关注. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-pic-mn-page-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W

基于Jquery实现表格动态分页实现代码_jquery

当页面点击分页图标时,程序会自动去后台获取对应页数的记录. 关键代码如下: 需要引入的css和js文件有: 复制代码 代码如下: <link rel="stylesheet" type="text/css" href="<%=basePath %>css/theme/default/css/jpage.css"></link> <link ID="skin" rel="sty

jQuery 中使用JSON的实现代码_jquery

JSON 的格式说明可以在可以这里看到,非常详细,还是中文的. JSON 格式说明 需要特别注意的是,在 JSON 中的属性名是需要使用引号引起来的.  jQuery 中使用 JSON jQuery 是现在使用广泛的脚本库,那么,在 jQuery 中如何使用 JSON 呢? 解析 JSON 在 jQuery 中已经提供了对于解析 JSON 的内在支持, jQuery.parseJSON 函数提供了解析的支持,详细的说明见这里. 复制代码 代码如下: var obj = jQuery.parseJ

jQuery中读取json文件示例代码_jquery

json文件是一种轻量级的数据交互格式.一般在jquery中使用getJSON()方法读取. 复制代码 代码如下: $.getJSON(url,[data],[callback]) url:加载的页面地址 data: 可选项,发送到服务器的数据,格式是key/value callback:可选项,加载成功后执行的回调函数 1.首先建一个JSON格式的文件userinfo.json 保存用户信息.如下: 复制代码 代码如下: [ { "name":"张国立", &qu

使用jQuery轻松实现Ajax的实例代码_jquery

生成Asp.Net MVC框架后,已经包含了jQuery脚本,相关环境设置可参看我的另一篇文章:Asp.Net MVC实例.这里,我们仍然借助实例中的环境.在生成的框架中的Scripts文件夹中已经可以看到jQuery的脚本.我们在TestModel.cs中创建一个函数,以取得Json数据,仍然使用Tets表,包含两个字段:Id和Name. 复制代码 代码如下: //JsonDataArray public static Array GetJsonArray(String name) { Arr

利用jQuery操作对象数组的实现代码_jquery

jQuery对于数组元素操作主要提供了以下工具: (1)数组和对象的例遍:jQuery.each(obj,callback) 通用例遍方法,可用于例遍对象和数组.回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容.如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略. (2)数组元素的过滤:jQuery.grep(array,callback,[invert]) 使用过滤函数过滤数组元素.此函数至少传递两个参数:待过滤数组和过滤函数.过滤函数必须

利用jQuery实现打字机字幕效果实例代码_jquery

实现效果: 实现原理: 把html里的代码读进来, 然后跳过"<"和">"之间的代码, 顺便保存了内容的格式, 然后一个定时器,逐个输出. 用到的基础知识: jQuery为开发插件提拱了两个方法,分别是:      jQuery.fn.extend(object);     jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jQuery.fn.extend(objec

jquery中对表单的基本操作代码_jquery

复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="../conn/jsfile/jquery.js" type="text/javascript"></script> </head>