JQuery与JSon实现的无刷新分页代码


Posted in Javascript onSeptember 13, 2011

如图   JQuery与JSon实现的无刷新分页代码
而无刷新分页可以解决这个问题,上面播放着视频,下面我点下一页看着评论,现在大部分的网站都是无刷新分页。
源码如下(我是采用一页显示10条记录):
需要四个文件
一个实体类文件 CategoryInfoModel.cs
一个SqlHelper SQLHelper.cs
一个AJAX服务端处理程序 PagedService.ashx
一个客户端调用页面 WSXFY.htm
CategoryInfoModel.cs和SQLHelper.cs我就不写了,都知道是什么文件
PagedService.ashx 代码如下

using System.Web.Script.Serialization; 
public void ProcessRequest(HttpContext context) 
{ 
context.Response.ContentType = "text/plain"; 
string strAction = context.Request["Action"]; 
//取页数 
if (strAction == "GetPageCount") 
{ 
string strSQL = "SELECT COUNT(*) FROM CategoryInfo"; 
int intRecordCount = SqlHelper.ExecuteScalar(strSQL); 
int intPageCount = intRecordCount / 10; 
if (intRecordCount % 10 != 0) 
{ 
intPageCount++; 
} 
context.Response.Write(intPageCount); 
}//取每页数据 
else if (strAction == "GetPageData") 
{ 
string strPageNum = context.Request["PageNum"]; 
int intPageNum = Convert.ToInt32(strPageNum); 
int intStartRowIndex = (intPageNum - 1) * 10 + 1; 
int intEndRowIndex = (intPageNum) * 10 + 1; 
string strSQL = "SELECT * FROM ( SELECT ID,CategoryName,Row_Number() OVER(ORDER BY ID ASC) AS rownum FROM CategoryInfo) AS t"; 
strSQL += " WHERE t.rownum >= " + intStartRowIndex + " AND t.rownum <= " + intEndRowIndex; 
DataSet ds = new DataSet(); 
SqlConnection conn = SqlHelper.GetConnection(); 
ds = SqlHelper.ExecuteDataset(conn, CommandType.Text, strSQL); 
List<CategoryInfoModel> categoryinfo_list = new List<CategoryInfoModel>();//定义实体集合 
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
CategoryInfoModel categoryinfo = new CategoryInfoModel(); 
categoryinfo.CategoryInfoID = Convert.ToInt32(ds.Tables[0].Rows[i]["ID"]); 
categoryinfo.CategoryName = ds.Tables[0].Rows[i]["CategoryName"].ToString(); 
categoryinfo_list.Add(categoryinfo); 
} 
JavaScriptSerializer jss = new JavaScriptSerializer(); 
context.Response.Write(jss.Serialize(categoryinfo_list));//序列化实体集合为javascript对象 
} 
}

WSXFY.htm 代码如下
<head> 
<title>无刷新分页</title> 
<script type="text/javascript" src="../Scripts/jquery-1.5.1.min.js"></script> 
<script type="text/javascript"> 
$(function () { 
$.post("PagedService.ashx", { "Action": "GetPageCount" }, function (response, status) { 
for (var i = 1; i <= response; i++) { 
var td = $("<td><a href=''>" + i + "</a></td>"); 
$("#trPage").append(td); 
td.click(function (e) { 
e.preventDefault(); //不要导向链接 
$.post("PagedService.ashx", { "Action": "GetPageData", "PageNum":$(this).text() }, function (response, status) { 
var categorys = $.parseJSON(response); 
$("#ulCategory").empty(); 
for (var i = 0; i < categorys.length; i++) { 
var category = categorys[i]; 
var li = $("<li>" + category.CategoryInfoID + "-" + category.CategoryName + "</li>"); 
$("#ulCategory").append(li); 
} 
}); 
}); 
} 
}); 
}); 
</script> 
</head> 
<body> 
<ul id="ulCategory"></ul> 
<table> 
<tr id="trPage"> 
</tr> 
</table> 
</body> 
</html>

效果如下(页面好不好看取决于你画DOM 的水平了,我这里只是简单的画了画)
JQuery与JSon实现的无刷新分页代码
Javascript 相关文章推荐
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
利用JS进行图片的切换即特效展示图片
Dec 03 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
jQuery Validate表单验证深入学习
Dec 18 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
js Event对象的5种坐标
Sep 12 #Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 #Javascript
腾讯UED 漂亮的提示信息效果代码
Sep 12 #Javascript
jQuery的.live()和.die() 使用介绍
Sep 10 #Javascript
jquery tab插件精简版分享
Sep 10 #Javascript
javascript语言结构小记(一)
Sep 10 #Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 #Javascript
You might like
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
极简主义法编写JavaScript类
2017/11/02 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python如何读取、写入JSON数据
2020/07/28 Python
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
文明班集体申报材料
2014/05/23 职场文书
中秋客户感谢信
2015/01/22 职场文书
晚会开幕词范文
2016/03/04 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
HTML中的表单元素介绍
2022/02/28 HTML / CSS