前台自定义通用分页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>
|
| |
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();
}
详情: http://hi.baidu.com/zhifeichuan/