前台自定义通用分页jquery插件

(一)框架:用jquery+ajax+struts1实现 自动创建行和列

持久层用的是abatis.数据库用的是MySQL.

(二)sqlMap

shangjia.xml的配置如下

<resultMap class="java.util.LinkedHashMap" id="storeMap">
<result property="sto_id" column="sto_id"/>
<result property="sto_name" column="sto_name"/>
<result property="sto_contactphone" column="sto_contactphone"/>
<result property="sto_time" column="sto_time" javaType="string"/>
</resultMap>

<statement id="selectListStore" resultMap="storeMap" parameterClass="com.tj_zhongzhixin.common.util.PageResult" >
select sto_id,sto_name,sto_contactphone,sto_time from store limit #pageSize# offset #throwRows#
</statement>

小提示:为什么不用实体类映射

我之所以不用实体类映射(就是将resultMap的Class设成实体类),是因为自动生成的表格的行是根据集合中Map的个数决定的,而表格的列是根据集合中Map的键值对的个数决定的,所以如果用实体类映射的话自动生成的表格的列就要按照实体类的属性的个数决定。而不论你的sql语句是否是查询所有的属性,都会封装到Map中实体类里。这样就不能的到实际查询的属性,而是所有的属性。

小提示:为什么要用LinkedHashMap

当我运行页面是准确的显示出了我在sql中制定的属性,而不是所有的属性。但是有出现了一个问题就是:它的顺寻跟我在sql中指定的查询不一致(起初结果集封装到了HashMap中)。原来HashMap集合会自动给值排序,后发现LinkedHashMap不会自动排序。所以就选择了LinkedHashMap

(三)query

jQuery.searchByPage.js

//jQuery提交请求数据
/*actionName为要跳转到的action的name
*param为页面参数(包括struts-config.xml中的parameter和其值,页数,每页显示的条数,查询的条件)
*options为操作的图标信息
*/
(function($){
$.showLostData=function(actionName,param){
$.ajax({
url:actionName,
type:"post",
data:param,
dataType:"json",

//在请求发出之前执行的函数
beforeSend:function(){

//dataTable为Table的Id其中table要放在From中
$("#dataTable").append(
"<div id='showWait' style='position:absolute;width:100%;height:100%;left:0;top:0;background-color:#808080;filter:alpha(opacity=15)'></div>");

//设置等待图片

$("#dataTable").append("<div id='showWaitImg' style='position:absolute;width:20px;height:20px;top:50%;left:50%'><img src='jQuery/page/blue-loading.gif'/></div>");
},
//请求成功 返回的data是PageResult(json)对象 格式如下

/**

{"firstRec":0,"list":[{"sto_id":1,"sto_name":"鼎盛行商","sto_contactphone":"18920022177","sto_time":"2009-11-17 16:27:43.0"},{"sto_id":2,"sto_name":"天津数码港","sto_contactphone":"13752134943\r\n13752134943\r\n13752134943\r\n","sto_time":"2009-11-25 16:27:49.0"}]

**/
success:function(data){
//行数
var trNum=data.list.length;
//列数
var tdNum="";
if(trNum==0){
alert("查询内容为空!");
}else{
//清空原先数据
$("#showData").empty();
//重新填充数据
for(var i=0;i<trNum;i++){

//创建tr
$("#showData").append("<tr id="+i+"></tr>");
//创建td
for(var temp in data.list[i]){
$("#"+i).append("<td class='list_data_ltext'>"+data.list[i][temp]+"</td>");
}

}

//创建翻页操作

/**

pageResult是一个分页类包含list集合,pageNo//页码; pageSize //每页显示条数 ;Total = 0; //总页数;
throwRows=0; //被跳过的记录数

下面是翻页的工具条,生成在一个实现创建的层里,层的类样式为pager

**/
$("div.pager").append("<div style='text-align:right;padding:6px 6px 0 0';></div>").html(
"共"+data["recTotal"]+"条记录 \r\n"+
"每页显示<input id=\"pageSize\" name=\"pageResult.pageSize\" value=\""+data["pageSize"]+"\" size=\"3\" />条 \r\n"+
"第<input id=\"pageNo\" name=\"pageResult.pageNo\" value=\""+data["pageNo"]+"\" size=\"3\" />页"+
" / 共"+data["pageTotal"]+"页 \r\n"+
"<a href=\"javascript:page_first();\">第一页</a> \r\n"+
"<a href=\"javascript:page_pre();\">上一页</a>\r\n"+
"<a href=\"javascript:page_next();\">下一页</a> \r\n"+
"<a href=\"javascript:page_last();\">最后一页</a>\r\n"+
"<input type=\"button\" class=\"common_button\" οnclick=\"javascript:page_go();\" value=\"转到\" />\r\n"+
"<input type=\"hidden\" name=\"pageResult.orderBy\" value=\"\" />\r\n"+
"<input type=\"hidden\" name=\"pageResult.sort\" value=\"\" />\r\n"+
"<script>\r\n"+
" var pageTotal = "+data["pageTotal"]+";\r\n"+
" var recTotal = "+data["recTotal"]+";\r\n"+
"</script>\r\n"
);
}},

error:function(){
alert("请求失败!");
},

complete:function(){
$("#showWait").remove();
$("#showWaitImg").remove();
}
});

}
})(jQuery);

//操作翻页的js代码
function page_go()
{
page_validate();
$("form").submit();
}
function page_first()
{
document.forms[0].elements["pageResult.pageNo"].value = 1;
$("form").submit();
}
function page_pre()
{
var pageNo = document.forms[0].elements["pageResult.pageNo"].value;
document.forms[0].elements["pageResult.pageNo"].value = parseInt(pageNo) - 1;
page_validate();
$("form").submit();
}
function page_next()
{
var pageNo = document.forms[0].elements["pageResult.pageNo"].value;
document.forms[0].elements["pageResult.pageNo"].value = parseInt(pageNo) + 1;
page_validate();
$("form").submit();
}
function page_last()
{
document.forms[0].elements["pageResult.pageNo"].value = pageTotal;
$("form").submit();
}
function page_validate()
{
var pageNo = document.forms[0].elements["pageResult.pageNo"].value;
if (pageNo<1)pageNo=1;
if (pageNo>pageTotal)pageNo=pageTotal;
document.forms[0].elements["pageResult.pageNo"].value = pageNo;
var pageSize = document.forms[0].elements["pageResult.pageSize"].value;
if (pageSize<1)pageSize=1;
document.forms[0].elements["pageResult.pageSize"].value = pageSize;
}
function order_by(field){
document.forms[0].elements["pageResult.orderBy"].value = field;
page_first();
}

jquery+ajax通用无刷新分页相关推荐

  1. jQuery+Ajax+PHP无刷新分页

    代码需要在后台运行(包括页面index.html,ajax.php,connect.php,还有数据库food.sql) index.html <!DOCTYPE html> <ht ...

  2. ajax实现无刷新分页与提示

    目录 封装dao方法 通用查询 分页sql语句定义oracle 语句dao 方法 Servlet界面获取数据代码 分页与提示共用界面 以及加载主页数据 Html界面代码 显示与搜索实现 分页下一页应用 ...

  3. smarty+php+ajax 简单无刷新分页

    简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($ ...

  4. 在Thinkphp中使用AJAX实现无刷新分页

    在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +------------------------------ ...

  5. Ajax实现无刷新分页效果

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. jQuery AJAX 网页无刷新上传示例

    新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...

  7. JQuery Ajax后台无刷新验证用户名重复,前台验证两次密码一致,后台创建并验证 验证码

    写在前面 写web 的人,我想最先要解决的就是注册登录的界面了,一个小小的界面却包含着各种基本的知识,让我这个新手摸了一天. 效果图 知识 1.bootstrap渲染表单 2.JQuery ajax验 ...

  8. Jquery Ajax自定义无刷新提交表单Form

    Jquery的$.ajax方法可以实现ajax调用,要设置url,post,参数等. 如果要提交现有Form需要写很多代码,何不直接将Form的提交直接转移到ajax中呢. 以前的处理方法 如Form ...

  9. Ajax 实现无刷新分页

    用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. 1.设置分页显示显示的样式,显示效果如下. <style type="text/css&qu ...

最新文章

  1. python之接口开发
  2. AQA 2011年度最佳博客
  3. 我是一名普通程序员,通过自己的努力,我的收入涨了3倍!
  4. JsonMappingException: (was java.lang.NullPointerException)
  5. properties类_受不了springboot的yml和properties配置,我扩展出了groovy配置
  6. 权限设计表结构超详细_模具设计丨问题点检表、全套标准件结构分布,值得转发...
  7. 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-02 单表查询
  8. 力扣面试题16.05.阶乘尾数
  9. 【转】MapReduce读取lzo文件
  10. 拓端tecdat|用RSHINY DASHBOARD可视化美国投票记录
  11. pivot position_PIVOT用法详解
  12. 8种企业数据采集工具分析
  13. 7个Python实战项目(附源码),拿走就用
  14. Javashop电商系统7.0发布
  15. 微信小程序框架主体快速开发教程
  16. 系统web服务器配置,简单介绍Web服务器的配置方法
  17. 通信原理及系统系列19—— 锁相环(鉴相器分析_2)
  18. 了解计算机的配置及价格行情,最新电脑配置清单及价格的详细介绍
  19. 计算机nls数据丢失损坏无法启动,电脑开机时,显示NLS数据丢失或损坏怎么处理...
  20. 三菱plc传送文件到服务器,三菱Q系列PLC通过FTP文件传输案例介绍

热门文章

  1. oracle erp 库存账龄,探讨Oracle Applications 库存及库龄的计算方法
  2. Java开发 - MybatisPlus框架初体验
  3. 如何隐藏CSDN博客文章
  4. ubuntu18.04下用yolo训练自己的数据集
  5. 外贸邮件营销怎么做才有效果?教你5个小技巧!
  6. python_ 标识符
  7. OJ.Tom and Jerry
  8. 世界大学排行榜这么多,哪个最权威?
  9. git解决冲突的方式
  10. oldguo DBA 的精品课程介绍