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 each()方法的使用方法
Mar 18 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
Dec 14 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
Apr 08 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 $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
Script的加载方法小结
2011/01/12 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
python 使用get_argument获取url query参数
2017/04/28 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
vue实现倒计时功能
2021/03/24 Vue.js
音乐学个人的自荐书范文
2013/11/26 职场文书
运动会广播稿50字
2014/01/26 职场文书
验房委托书
2014/08/30 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
公务员检讨书
2014/11/01 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
订货会邀请函
2015/01/31 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL