<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>jquery-ajax分页</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="js/jquery-1.2.6.pack.js" type="text/javascript"></script>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.pagination.js" type="text/javascript"></script>
<link href="js/pagination.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var orderby="order by id_t";
$(document).ready(function(){
initData(0);
});
//翻页响应
function pageselectCallback(page_id,jq) {
initData(page_id);
} function initData(pageindx)
{
var tbody="";
var pageCount="";
$.ajax({
type: "POST",//用POST方式传输
dataType:"json",//数据格式:JSON
url:'getData.action',//目标地址
async:false,//作用是防止在ajax成功调用之前就调用$("#Pagination").pagination,这个时候数据个数还没有初始化
data:"p="+(pageindx+1)+"&orderby="+escape(orderby),
beforeSend:function(){$("#divload").show();$("#Pagination").hide();},//发送数据之前
complete:function(){$("#divload").hide();$("#Pagination").show();},//接收数据完毕
success:function(json) {
$("#productTable tr:gt(0)").remove();
var productData = json.pageData;
pageCount=json.pageCount;
if(productData==""){
$("#divload").hide();
dis();
return false;
}
$.each(productData, function(i, n) {
var trs = "";
trs += "<tr><td align='center'>" + n.id_t + "</td><td align='center'>"+n.name_t+"</td><td align='center'>"+n.reamark_t+"</td><td align='center'>"+n.age_t+"</td><td align='center'>"+n.hobby_t+"</td><td align='center'><a href=\"javascript:edit('')\">编辑</a>  <a href=\"javascript:view('')\">查看</a></td></tr>";
tbody+=trs;
}); $("#productTable").append(tbody);
//行交替颜色
$("#productTable tr:gt(0):odd").attr("class", "");
$("#productTable tr:gt(0):even").attr("class", "");
}//end of success
});
if(pageCount!=0){
$("#Pagination").pagination(pageCount, {
callback: pageselectCallback,
prev_text: '<< 上一页',
next_text: '下一页 >>',
items_per_page:3,//与action中定义的一个界面显示数量保持一致
num_display_entries:6,
current_page:pageindx,
num_edge_entries:2
});
}
}
//排序
function Sort(ordercolumn,ordertipid){
var ordertype="";//1:desc,0:asc
var $orderimg = $("#"+ordertipid);
if($orderimg.html()!="")
{
var imgsrc="";
//$(子,父)
imgsrc = $("img",$orderimg).attr("src");
alert(imgsrc);
if(imgsrc.indexOf("asc")>-1){
$(".ordertip").empty();
$orderimg.html(" <img src=\"images/sort_desc.gif\" align=\"absmiddle\">"); ordertype = 1;
}
else
{
$(".ordertip").empty();
$orderimg.html(" <img src=\"images/sort_asc.gif\" align=\"absmiddle\">"); ordertype = 0;
}
}
else
{
$(".ordertip").empty();
$orderimg.html(" <img src=\"images/sort_desc.gif\" align=\"absmiddle\">");
ordertype = 1;
} orderby = ordercolumn+"_"+ordertype;
initData(0); }
</script>
</head> <body>
<div id="divload" style="top:50%; right:50%;position:absolute; padding:0px; margin:0px; z-index:999"></div>
<table id="productTable" style="width:70%" class="TableList">
<tr class="TableHeader">
<th nowrap align="middle"><a style="cursor:pointer;" onclick="Sort('id_t','id_t');return false;">id</a><span id="id_t" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
<th nowrap align="middle"><a style="cursor:pointer;" onclick="Sort('name_t','name_t');return false;">name</a><span id="name_t" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
<th nowrap align="middle"><a style="cursor:pointer;" onclick="Sort('remark_t','remark_t');return false;">remark</a><span id="remark_t" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
<th nowrap align="middle"><a style="cursor:pointer;" onclick="Sort('age_t','age_t');return false;">age</a><span id="age_t" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
<th nowrap align="middle"><a style="cursor:pointer;" onclick="Sort('hobby_t','hobby_t');return false;">hobby</a><span id="hobby_t" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
<th nowrap align="middle"><a style="cursor:pointer;">操作</a><span id="Span8" class="ordertip"><img src="data:images/sort_desc.gif" align="absmiddle"></span></th>
</tr>
</table>
<div id="Pagination" class="flickr" style="text-align:left"></div>
</body>
</html>
 
package com.jiang.action;

import com.jiang.DB.GetData;
import com.opensymphony.xwork2.ActionSupport; public class GetPageData extends ActionSupport {
private String p;//当前页
private String orderby;//排序规则
private String data;
public String getData() {
return data;
} public void setData(String data) {
this.data = data;
} public String getP() {
return p;
} public void setP(String p) {
this.p = p;
} public String getOrderby() {
return orderby;
} public void setOrderby(String orderby) {
this.orderby = orderby;
} public String execute()throws Exception{
System.out.println("p:"+p);
System.out.println("orderby:"+orderby);
if("".equals(orderby)){
orderby="order by id_t";
}
if("".equals(p)){
p=String.valueOf(1);
}
if(Integer.parseInt(p)==0){
p=String.valueOf(1);
}
data=GetData.getJson("pagetest", "*", "","order by id_t", Integer.parseInt(p), 3);
System.out.println("data:"+data);
// System.out.println(data);
return SUCCESS;
}
}

打印结果:data:{"pageCount":"4","pageData":[{"id":"1","id_t":"1","name":"1","remark":"1","age":"1","hobby":"1"},{"id":"2","id_t":"2","name":"b","remark":"b","age":"b","hobby":"b"},{"id":"3","id_t":"3","name":"啊","remark":"啊","age":"啊","hobby":"啊"},{"id":"4","id_t":"4","name":"啊","remark":"啊","age":"啊","hobby":"啊"},]}

package com.jiang.DB;

import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import javax.sql.RowSet; public class GetData {
public static String getJson(String tableName,String select,String where,String orderby,int pageIndex,int pageCount){
StringBuilder sb=new StringBuilder();
sb.append("select "+select+" from "+tableName);
if(!"".equals(where)){
sb.append(" ");
if(where.startsWith("where")){
sb.append(" "+where);
}else{
sb.append(" where "+where);
}
}
sb.append(" "+orderby+" ");
int temp=(pageIndex-1)*pageCount;
sb.append(" limit "+temp+","+pageCount);
RowSet rt=DBop.search(sb.toString());
//求数据总条目数
int rowNum=0;
rowNum=DBop.getNum(tableName,where);
return RowSetToJson(rt,rowNum,pageCount);
} /*
* @param count 数据总条目数
* @param pageCount 每页显示数据数
* */
private static String RowSetToJson(RowSet rt,int count,int pageCount){
ResultSetMetaData rm=null;
StringBuilder sb=new StringBuilder();
try {
rm=rt.getMetaData();
sb.append("{\"pageCount\":\""+count+"\",\"pageData\":[");
int columNum=rm.getColumnCount();
List<String> list=new ArrayList<String>();
for(int i=0;i<columNum;i++){
list.add(rm.getColumnName(i+1));
} for(int i=0;i<pageCount&&rt.next();i++){
sb.append("{");
for(int j=0;j<list.size();j++){
if(j!=list.size()-1){
sb.append("\""+list.get(j)+"\":\""+rt.getString(list.get(j))+"\",");
}else{
sb.append("\""+list.get(j)+"\":\""+rt.getString(list.get(j))+"\"");
}
}
if(i!=pageCount-1){
sb.append("},");
}else{
sb.append("}");
}
}
sb.append("]}");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
} public static void main(String[] args){
String temp=GetData.getJson("pagetest", "*", "","order by id_t", 1000, 10);
System.out.println(temp);
}
}

源:http://a881127b.iteye.com/blog/972277

拼接json示例 json分页并显示所有页码的更多相关文章

  1. jquery ajax json简单的分页,模拟数据,没有封装,只显示原理

    简单的分页,模拟数据,没有封装,显示原理,大家有兴趣可以自己封装,这里只是个原理过程,真正的分页也差不多是这个原理,只是请求数据不太一样,html部分: <!TOCTYPE HTML> & ...

  2. 基于Jquery+Ajax+Json+存储过程 高效分页

    在做后台开发中,都会有大量的列表展示,下面给大家给大家分享一套基于Jquery+Ajax+Json+存储过程高效分页列表,只需要传递几个参数即可.当然代码也有改进的地方,如果大家有更好的方法,愿留下宝 ...

  3. 如何构建 MVC&AJax&JSon示例

    背景: 博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax. 直接查看JSon部分 步骤: 1,添加控制器(HomeController)和动作方法(In ...

  4. 如何构建ASP.NET MVC4&JQuery&AJax&JSon示例

    背景: 博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax. 步骤: 1,添加控制器(HomeController)和动作方法(Index),并为Inde ...

  5. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  6. 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中

    http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...

  7. 关于springmvc 返回json数据null字段的显示问题-转https://blog.csdn.net/qq_23911069/article/details/62063450

    最近做项目(ssm框架)的时候,发现从后台返回的json(fastjson)数据对应不上实体类,从数据库查询的数据,如果对应的实体类的字段没有信息的话,json数据里面就不显示,这不是我想要的结果,准 ...

  8. python2.7中关于编码,json格式的中文输出显示

    当我们用requests请求一个返回json的接口时候, 语法是 result=requests.post(url,data).content print type(result),result 得到 ...

  9. ajax——优化0126(增删改查:添加查看详情,返回结果类型为JSON型,在窗口显示)

    效果: 鼠标点击查看详情时 数据库: 0126.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

随机推荐

  1. PHP session过期时间

    如何设置一个严格30分钟过期的Session 今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看 ...

  2. Android开发:向下一个activity传递数据,返回数据给上一个activity

    1.向下一个activity传递数据 activity1 Button button=(Button) findViewById(R.id.button1); button.setOnClickLis ...

  3. Codeforces 374A - Inna and Pink Pony

    原题地址:http://codeforces.com/contest/374/problem/A 好久没写题目总结了,最近状态十分不好,无论是写程序还是写作业还是精神面貌……NOIP挂了之后总觉得缺乏 ...

  4. UVA 12661 Funny Car Racing 有趣的赛车比赛(最短路,变形)

    题意:赛道有n个交叉点,和m条单向路径(有重边),每条路都是周期性关闭的,且通过仍需一段时间.在比赛开始时,所有道路刚好打开,选择进入该道路必须满足“在打开的时间段进入,在关闭之前出来”,即不可在路上 ...

  5. acdream 瑶瑶带你玩激光坦克 (模拟)

    瑶瑶带你玩激光坦克 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 256000/128000KB (Java/Others) Submi ...

  6. 利用icepdf将pdf文件转为图片

    所需jar 包为icepdf-core.jar.icepdf-extra.jar.icepdf-pro-intl.jar.icepdf-pro.jar和icepdf-viewer.jar. 示例代码如 ...

  7. 【转】10分钟搭建NDK的Android开发环境

    原文网址:http://blog.csdn.net/u012176591/article/details/23018913 作者:金良(golden1314521@gmail.com) csdn博客: ...

  8. ejabberd的多域名(domain)设置

    在ejabberd中可以支持多个domain,我讲一下我的配置过程我的ejabberd系统是:ejabberd server+sql server+openldap+gateway.我总共使用了5台机 ...

  9. 通过autofac教你彻底明白依赖解耦(二)理论结合实践 - 大侠.Net

    上节说了一下基本的理论知识,例子可能不太好,不过无所谓了,目的是要让大家明白啥是依赖倒置和依赖注入,目的就达到了,简单一句话,这2玩意都是用来解耦合的. 不过依赖倒置这个词哥哥真不敢苟同,哥哥来个颠覆 ...

  10. [NOIP2013]转圈游戏

    题目描述 Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 ...