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 相关文章推荐
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
May 08 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
jquery动态添加删除div 具体实现
Jul 20 Javascript
JS分页效果示例
Oct 11 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 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魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php二维码生成以及下载实现
2017/09/28 PHP
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
js评分组件使用详解
2017/06/06 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
[01:13]这,就是刀塔
2014/07/16 DOTA
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Python pickle模块实现对象序列化
2019/11/22 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
软件工程师面试题
2012/06/25 面试题
助人为乐表扬信范文
2014/01/14 职场文书
高二英语教学反思
2014/01/19 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
软件测试专业推荐信
2014/09/18 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
优秀高中学生评语
2014/12/30 职场文书
师范生见习自我总结
2015/06/23 职场文书
田径运动会广播稿
2015/08/19 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
python 实现两个变量值进行交换的n种操作
2021/06/02 Python