在页面中指定一个div容器来接收动态生成的分页数据:

 <div id="div_menu">
</div>

使用jQuery来请求并处理Json格式数据:

 //定义页码与页容量
var pageIndex = 1;
var pageSize = 15;
var pageCount = 0;
var recordCount = 0;
AjaxGetData(pageIndex, pageSize);
//Ajax获取数据
function AjaxGetData(index, size) {
$.ajax({
url: "ProcessData.aspx",
type: "Get",
data: "pageindex=" + index + "&pagesize=" + size + "&rnd=" + new Date(),
dataType: "json",
success: function (data) {
var htmlStr = "";
htmlStr += "<table width=100%>";
for (var i = 0; i < data.Exercise_object.length; i++) {
htmlStr += "<tr><td class='rr' onmouseover='javascript:onOver(this)' onmouseout='javascript:onOut(this)'onclick='javascript:onDown(this);'>";
htmlStr += "<a href='voucher/Exercise_Detail.aspx?id=" + data.Exercise_object[i]._question_id + "' class='cpx12huei' target='content'>";
htmlStr += "第" + data.Exercise_object[i]._row_number + "题";
htmlStr += "</a>";
htmlStr += "</td></tr>";
}
htmlStr += "<tr style='text-align:center;'>";
htmlStr += "<td>";
recordCount = Number(data.Count);
pageCount = Math.ceil(recordCount / pageSize);
htmlStr += "共" + recordCount + "条记录&nbsp;&nbsp;共<span id='count'>" + pageCount + "</span>页&nbsp;&nbsp;&nbsp;&nbsp;";
htmlStr += "<a href='javascript:void' onclick='GoToPrePage()' id='aPrePage' >前一页</a>&nbsp;&nbsp; ";
htmlStr += "<a href='javascript:void' onclick='GoToNextPage()' id='aNextPage'>后一页</a>&nbsp;&nbsp; ";
htmlStr += "</td>";
htmlStr += "</tr>";
htmlStr += "</table>";
$("#div_menu").html(htmlStr);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
}
});
}
//前一页
function GoToPrePage() {
pageIndex -= 1;
if (pageIndex < 1) {
pageIndex = 1;
return;
}
AjaxGetData(pageIndex, pageSize);
}
//后一页
function GoToNextPage() {
pageIndex += 1;
if (pageIndex > pageCount) {
pageIndex = pageCount;
return;
}
AjaxGetData(pageIndex, pageSize);
}

新建一个一般处理程序,来处理Ajax的异步请求:

 private readonly BLL.D_Accounting_Entry_Exercise bll = new BLL.D_Accounting_Entry_Exercise();
private string _action = "";
protected void Page_Load(object sender, EventArgs e)
{
Int32 pageIndex = Int32.MinValue;
Int32 pageSize = Int32.MinValue; if (Request["action"] != null)
this._action = Request["action"]; JavaScriptSerializer jss = new JavaScriptSerializer();
if (Request["pageindex"] != null)
{
pageIndex = Int32.Parse(Request["pageindex"].ToString());
pageSize = Request["pagesize"] != null ? Int32.Parse(Request["pagesize"].ToString()) : ; //处理接收到的数据
int start = ;
int end = ; if (this._action == "")
{
int recordCount = getAllCount();
int pageCount = (int)Math.Ceiling(((double)recordCount) / ((double)pageSize));
if (pageIndex > pageCount)
{
pageIndex = pageCount;
}
else if (pageIndex < )
pageIndex = ;
start = (pageIndex - ) * pageSize + ;
end = pageIndex * pageSize; IList<Exercise> exerciseLists = new List<Exercise>();
Exercise exercise = null;
DataSet set = GetDataFromDB(start, end);
int id = ;
for (int i = ; i < set.Tables[].Rows.Count; i++)
{
//将第一行记录的ID存入Session
Session["first_id"] = set.Tables[].Rows[]["question_id"];
exercise = new Exercise();
id = Convert.ToInt32(set.Tables[].Rows[i]["question_id"].ToString());
exercise._question_id = id;
exercise._question_content = set.Tables[].Rows[i]["question_content"].ToString();
exercise._question_answer = set.Tables[].Rows[i]["question_answer"].ToString();
exercise._question_analyze = set.Tables[].Rows[i]["question_analyze"].ToString();
exercise._question_status = Convert.ToInt32(set.Tables[].Rows[i]["question_status"].ToString());
exercise._user_id = Convert.ToInt32(set.Tables[].Rows[i]["user_id"].ToString());
exercise._add_time = Convert.ToDateTime(set.Tables[].Rows[i]["add_time"].ToString());
exercise._row_number = Convert.ToInt32(set.Tables[].Rows[i]["Row"].ToString());
exerciseLists.Add(exercise);
}
if (exerciseLists.Count > )
{
Response.Write("{\"Count\":" + recordCount + ",\"Exercise_object\":" + jss.Serialize(exerciseLists) + "}");
}
else
{
Response.Write("{\"Count\":0,\"Exercise_object\":null}");
}
Response.End();
}
else if (this._action == "")
{
string classID = Request["classid"];
string opSign = Request["opsign"];
int recordCount = GetYSPXCount(opSign, classID);
int pageCount = (int)Math.Ceiling(((double)recordCount) / ((double)pageSize));
if (pageIndex > pageCount)
{
pageIndex = pageCount;
}
else if (pageIndex < )
pageIndex = ;
start = (pageIndex - ) * pageSize + ;
end = pageIndex * pageSize; IList<operationModel> operList = new List<operationModel>();
operationModel model = null;
DataSet set = GetYSPXRecords(start.ToString(), end.ToString(), classID, opSign);
for (int i = ; i < set.Tables[].Rows.Count; i++)
{
model = new operationModel();
model.OD_ID = int.Parse(set.Tables[].Rows[i]["od_id"].ToString());
model.OD_TITLE = set.Tables[].Rows[i]["od_title"].ToString();
model._row_number = Convert.ToInt32(set.Tables[].Rows[i]["Row"].ToString());
operList.Add(model);
}
if (operList.Count > )
{
Response.Write("{\"Count\":" + recordCount + ",\"operationModel\":" + jss.Serialize(operList) + "}");
}
else
{
Response.Write("{\"Count\":0,\"operationModel\":null}");
}
Response.End();
}
}
} /// <summary>
/// 从数据库中获取总启用记录的条数
/// </summary>
/// <returns></returns>
private int getAllCount()
{
return bll.GetRecordCount("question_status=1");
} /// <summary>
/// 从数据库中获取数据
/// </summary>
/// <param name="pageIndex">开始</param>
/// <param name="pageSize">结束</param>
/// <returns>数据集对象</returns>
private DataSet GetDataFromDB(int pageIndex, int pageSize)
{
DataSet set = bll.GetListByPage("", "", pageIndex, pageSize);
return set;
}

实现效果:

ASP.NET中实现Ajax分页的更多相关文章

  1. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

  2. ASP.NET中无刷新分页

    上次介绍了我们代码写的刷新分页,这次就来说说无刷新分页. 这次我们是在上次的基础上改动了一些,我们都知道想要无刷新,就需要Ajax,在我们的ASP.NET中AJax是和一般处理程序配合着用的. 无刷新 ...

  3. thinkphp中的ajax分页

    thinkphp中用ajax分页和普通的ajax分页的区别在于处理位置的不同,thinkphp是在控制器的方法中处理ajax传的值,然后返回数据.下面是一个点击事件触发后,显示的内容用ajax分页. ...

  4. ASP.Net 中操作Ajax

    有时候,越深入去了解一个点,越发觉得自己无知,而之前当自己晓得一两个片面的点还洋洋自得,殊不知,这是多么讽刺,JQuery中有很多优势,比如异步提交值,部分刷新,给用户很好的体验感.目前为止,大部分项 ...

  5. php--yii框架中的ajax分页与yii框架自带的分页

    要想使用Yii分页类 第一步:在控制器层加载分页类 use yii\data\Pagination; 第二步: 使用model层查询数据,并用分分页,限制每页的显示条数 $data = Zhao::f ...

  6. 在ASP.MVC中使用Ajax

    Asp.net MVC 抛弃了Asp.net WebForm那种高度封装的控件,让我们跟底层的HTML有了更多的亲近.可以更自由.更灵活的去控制HTML的结构.样式和行为.Asp.net MVC可以更 ...

  7. Asp.net中的ajax回调模式(ICallbackEventHandler)

    客户端回调本质上就是指通过前端的客户端脚本向服务器端传递相应的数据参数,服务器端再以接受到的参数进行查询和处理,最后将结果回传到客户端进行显示.asp.net 2.0提供了实现无刷新回调的接口ICal ...

  8. 在asp.net中使用ajax记录

    一.问题描述 ajax在mvc中使用频繁,比如cms中的评论功能,但由于涉及到前后端开发,日久容易忘,在此做下记录. 二.内容 控制器中代码示例: /// <summary> /// 在文 ...

  9. asp.net 中使用 pagedlist 分页并具有查询功能的实现方法

    用pagedlist在项目中做分页已N次了,今天再次用实例来实现一个带查询功能的分页例子. 1.在view代码: @using PagedList.Mvc@model BGZS.Models.User ...

随机推荐

  1. poj1988 简单并查集

    B - 叠叠乐 Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:30000KB     64bit ...

  2. C/C++中字符串存储位置

    代码: #include <iostream> #include <cstdio> using namespace std; void fun(char **p){ //cha ...

  3. [转]Windows与Linux系统下的库文件介绍

    什么是库   库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的.它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,可以被操作系 ...

  4. MVC中,加入的一个aspx页面用到AspNetPager控件处理办法

    今天项目遇到了如题所示的问题,按照官方的案例介绍做分页,简直要奔溃了, 使用URL重写,但是page总是1,根本不跳, 不使用URL重写,又出现,第一页是 http://aa.com/view_asp ...

  5. Zepto源码笔记(二)

    uniq(array) 返回不存在重复值的数组 function classRE(name) 判断classCache中是否已存在name,若存在则取出classCache[name];否则存入该类名 ...

  6. C语言基础学习基本数据类型-int类型与int变量

    int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ...

  7. Python 升级

    1.到官网下载对于的版本: 2.下载之后并解压出来,编译: tar xf python.xx.xx.tar.xz sudo mkdir /usr/local/python ./configure -- ...

  8. matlab 对图像操作的函数概览

    转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

  9. ROM包内的大致框架及各个文件的作用[转]

    1.system/app这个里面主要存放的是常规的应用程序,都是以apk格式结尾的文件,在这个文件夹下面的程序为系统默认的组件,个人安装的软件不会出现在这里,而是data文件夹中. 2.system/ ...

  10. cf C. Purification

    http://codeforces.com/contest/330/problem/C 这道题分三种情况.有一行全是E,有一列全是E,还有一种为无解的情况. #include <cstdio&g ...