asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageTest.aspx.cs" Inherits="renmai_PageTest" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Jquery+Ajax分页测试</title>
<script src="../js/jquery-1.11.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
InitPage(1, 10);
$(".nextPage").click(function () {
InitPage($("#nextpage").val(), 10);
});
});
//请求数据
function InitPage(pageIndex, pageSize) {
$.ajax({
type: "POST",
dataType: "json",
url: '/Handler/Handler1.ashx',
data: "type=show&random=" + Math.random() + "&pageIndex=" + pageIndex + "&pageSize=" + pageSize,
error: function () { alert('error data'); }, //错误执行方法
success: function (data) {
var json = data; //数组
var recordCount = json.table2[0].recordcount;
var pageCount = json.table2[0].pagecount;
var html = "";
$.each(json.table1, function (index, item) {
//循环获取数据
var id = item.Id;
var name = item.Name;
var sex = item.Sex;
html += "<tr><td>" + id + "</td><td>" + name + "</td><td>" + sex + "</td></tr>";
});
$("#Result").append(html);
if (pageIndex >= parseInt(pageCount)) {
$(".nextPage").hide();
}
else {
$("#nextpage").val(parseInt(pageIndex) + 1)
}
}
});
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="hidden" id="nextpage" value="1" />
<table id="Result" cellspacing="0" cellpadding="0">
<tr>
<th style="width:50px;">
编号
</th>
<th style="width:100px;">
姓名
</th>
<th style="width:50px;">
性别
</th>
</tr>
</table>
<a href="javascript:void(0)" class="nextPage">下一页</a>
</div>
</form>
</body>
</html>
<%@ WebHandler Language="C#" Class="Handler1" %> using System;
using System.Web;
using System.Data;
using Newtonsoft.Json; public class Handler1 : IHttpHandler {
/* Handler/Handler1.ashx */
protected static int RecordCount = 0;
protected static DataTable dt = CreateDT();
public void ProcessRequest (HttpContext context) {
string type=context.Request["type"];
int pageIndex = MSCL.ConvertHelper.ObjectToInt(context.Request["pageIndex"]);
int pageSize = MSCL.ConvertHelper.ObjectToInt(context.Request["pageSize"]);
switch (type)
{
case "show":
#region 分页配置
if (pageIndex == 0) { pageIndex = 1; }
#endregion DataSet ds = new DataSet();
DataTable dtData = GetPagedTable(dt, pageIndex, pageSize);
dtData.TableName = "table1"; DataTable dtCount = new DataTable();
dtCount.TableName = "table2";
dtCount.Columns.Add("recordcount");
dtCount.Rows.Add(dt.Rows.Count); ds.Tables.Add(dtData);
ds.Tables.Add(dtCount); string json = JsonConvert.SerializeObject(ds, Formatting.Indented);
context.Response.Write(json);
break;
default :
break;
}
context.Response.End();
} #region 模拟数据
private static DataTable CreateDT()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Id", typeof(int)) { DefaultValue = 0 });
dt.Columns.Add(new DataColumn("Name", typeof(string)) { DefaultValue = "1" });
dt.Columns.Add(new DataColumn("Sex", typeof(string)) { DefaultValue = "男" });
for (int i = 1; i <= 58; i++)
{
dt.Rows.Add(i, "张三" + i.ToString().PadLeft(4, '0'));
}
RecordCount = dt.Rows.Count;
return dt;
}
#endregion /// <summary>
/// 对DataTable进行分页,起始页为1
/// </summary>
/// <param name="dt"></param>
/// <param name="PageIndex"></param>
/// <param name="PageSize"></param>
/// <returns></returns>
public static DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)
{
if (PageIndex == 0)
return dt;
DataTable newdt = dt.Copy();
newdt.Clear();
int rowbegin = (PageIndex - 1) * PageSize;
int rowend = PageIndex * PageSize;
if (rowbegin >= dt.Rows.Count)
return newdt;
if (rowend > dt.Rows.Count)
rowend = dt.Rows.Count;
for (int i = rowbegin; i <= rowend - 1; i++)
{
DataRow newdr = newdt.NewRow();
DataRow dr = dt.Rows[i];
foreach (DataColumn column in dt.Columns)
{
newdr[column.ColumnName] = dr[column.ColumnName];
}
newdt.Rows.Add(newdr);
}
return newdt;
} /// <summary>
/// 获取总页数
/// </summary>
/// <param name="sumCount">结果集数量</param>
/// <param name="pageSize">页面数量</param>
/// <returns></returns>
public static int getPageCount(int sumCount, int pageSize)
{
int page = sumCount / pageSize;
if (sumCount % pageSize > 0)
{
page = page + 1;
}
return page;
} public bool IsReusable {
get {
return false;
}
} }
asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)的更多相关文章
- jquery ajax php+mysql 无刷新分页 详细实例
最近在接触jquery和ajax,当前项目也会用到分页,为了用户体验更好一些,就准备用无刷新分页,这个demo很适合新手学习查看,写的比较清晰,话不多说,直接上代码吧. 首先是html页面,index ...
- ajax分页2:jquery.pagination +JSON 动态无刷新分页
静态页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- jquery.pagination +JSON 动态无刷新分页
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SqlPage.aspx.cs& ...
- ASP.NET Ajax简单的无刷新分页
最近练习了一些AJAX无刷新分页,写得比较简单,性能不知道怎么样,求大神指点,如有更好的分页提供,欢迎交流! 发话不多说了,直接上代码! 首先从网上下了一个JS分页,感觉挺好用的 (function( ...
- 本篇文章主要是对jquery+ajax+C#实现无刷新操作数据库数据的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
我们知道同步执行和异步执行的区别,为了更好的提高用户的体验,我们都会采用异步方式去处理一些问题,毕竟单线程的同步可能回造成卡死等现象,很不友好,所以可以使用ajax来完成用户的体验,现在我们就来说说如 ...
- TP2.0或3.1 或者 3.2 下使用ajax+php做无刷新分页(转+自创)
1.前言 作为一名php程序员,我们开发网站主要就是为了客户从客户端进行体验,在这里,thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻 ...
- Bootstrap Paginator分页插件+ajax 实现动态无刷新分页
之前做分页想过做淘宝的那个,但是因为是后台要求不高,就Bootstrap Paginator插件感觉还蛮容易上手,所以就选了它. Bootstrap Paginator分页插件下载地址: Downlo ...
- asp.net 中使用JQuery Ajax 上传文件
首先创建一个网页,网页中添加如下代码. <h3>Upload File using Jquery AJAX in Asp.net</h3> <table> < ...
- jQuery+AJAX实现网页无刷新上传
新年礼,提供简单.易套用的 jQuery AJAX上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...
随机推荐
- 防止fixed元素遮挡其他元素的方法
有多个页面,有的有固定的头部(设置了postion:fixed的元素),有的没有固定的头部,这时就有个问题,有固定头部的页面,头部会遮挡下面的内容,那怎么解决呢? <!DOCTYPE html& ...
- 团队作业8——第二次项目冲刺(Beta阶段) 5.19
Day1--5.19 1.展开站立式会议(拍摄者:武健男): 会议内容:(1)新成员自我介绍,使大家能更快熟悉并一起合作. (2)由于我们之前的项目经理去了别的小组,所以我们投票选取新成员林乔桦作为我 ...
- 201521123064 《Java程序设计》第6周学习总结
1. 本章学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123070 《JAVA程序设计》第4周学习总结
1. 本章学习总结 1.1 尝试使用思维导图总结有关继承的知识点. http://naotu.baidu.com/file/4de6f42e4f4f6cce0531dd9997b04e60?token ...
- 201521123050 《Java程序设计》第4周学习总结
1. 本周学习总结 2. 书面作业 1.注释的应用 1.1使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 2.面向对象设计(大作业1,非常重要) 2.1 将在 ...
- vbs文件共享变量与函数的方法
参考资料: vbs能否像其他编程语言一样,把写好的代码打包成类库以供调用呢?经过搜索和实验,发现vbs文件之间可以互相调用并共享变量,这样我们就不用再反复地编写轮子了. 以下是一个调用实例: ==== ...
- 域名解析>>"记录类型" 说明
(1)A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录. 说明:用户可以将该域名下的网站服务器指向到自己的web server上.同时也可以设置自己域名的二级域名. (2)MX ...
- Windows下用Composer安装Laravel步骤(集成php环境用phpStudy2016版本)
描述:到官方网站了解并根据自己所需要的版本号安装,所需要的php版本是多少. 中文网站:http://www.golaravel.com/ 官方网站:https://laravel.com/ 其实各自 ...
- 我和Python
记不得是年,我在网易云课堂上乱逛,看到了哈佛大学的<计算机编程导论>,这门课讲的正好是Python,讲的啥内容已经记不得多少了,因为是全英文教学,我只能慢慢的看字幕,一集得看个好几遍. 我 ...
- 利用ADO让普通人用excel读取oracle数据库表的通用办法
Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的 ...