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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
document.open() 与 document.write()的区别
Aug 13 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
Javascript 复制数组实现代码
Nov 26 Javascript
node.js中的console用法总结
Dec 15 Javascript
js数组去重的5种算法实现
Nov 04 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
Feb 21 Javascript
Vue.js中的extend绑定节点并显示的方法
Jun 20 Javascript
Nuxt 项目性能优化调研分析
Nov 07 Javascript
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
php allow_url_include的应用和解释
2010/04/22 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
基于wordpress的ajax写法详解
2018/01/02 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
Python API len函数操作过程解析
2020/03/05 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
python打开文件的方式有哪些
2020/06/29 Python
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
学年自我鉴定
2014/01/16 职场文书
教师师德演讲稿
2014/05/06 职场文书
本科毕业生求职信
2014/06/15 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015年助残日活动总结
2015/03/27 职场文书
药品开票员岗位职责
2015/04/15 职场文书
学术会议领导致辞
2015/07/29 职场文书
周一给客户的问候语
2015/11/10 职场文书
Python IO文件管理的具体使用
2022/03/20 Python