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 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
JQuery 学习技巧总结
May 21 Javascript
javascript实现添加附件功能的方法
Nov 18 Javascript
javascript事件冒泡简单示例
Jun 20 Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
详解webpack解惑:require的五种用法
Jun 09 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
webstorm中vue语法的支持详解
May 09 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
浅析vue插槽和作用域插槽的理解
Apr 22 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函数和特点
2013/08/08 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
php获取文件大小的方法
2014/02/26 PHP
php获取中文拼音首字母类和函数分享
2014/04/24 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
详细介绍Ruby中的正则表达式
2015/04/10 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python开发之函数定义实例分析
2015/11/12 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
python3实现表白神器
2019/04/09 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Django admin组件的使用
2020/10/24 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
美国翻新电子产品商店:The Store
2019/10/08 全球购物
房地产活动策划方案
2014/05/14 职场文书
淘宝活动总结范文
2014/06/26 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers