php ajax ashx,jQuery_Jquery Ajax.ashx 高效分页实现代码,以前的我,用惯了 UpdatePanel Upd - phpStudy...

Jquery Ajax.ashx 高效分页实现代码

以前的我,用惯了 UpdatePanel UpdateProgress 等控件,甚至到了滥用的程度,只是一味的追求无刷新,一边弄这 loading 图片 提示,这样貌似更美观,但是 感觉 更损失了性能, 而且有时候还破坏了网站的完整性。

但是学了Jquery之后,了解了 Jquery.ajax ,Jquery.get 等方法,从而学会了使用 webservice 和.ashx 文件,来与服务器交互。

这次的Jquery分页 是与 .ashx文件配合的。

建立三个.ashx,分别为PreviewHandler.ashx,PageHandler.ashx,NextHandler.ashx,分别来处理当前页,下一页,上一页的处理。

PageHandler.ashx

复制代码 代码如下:

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

IQueryable answer = xt.Answer.Take(10);

StringBuilder sb = new StringBuilder();

sb.Append("

回答内容回答用户名创建时间

foreach (Answer a in answer)

{

sb.Append("

" + a.Answer_content + "" + a.Answer_UserName + "" + a.Answer_Creatime + "");

}

sb.Append("

");

context.Response.Write(sb);

}

NextHandler.ashx

复制代码 代码如下:

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

int RowCount = 10;

int Current = Convert.ToInt32(context.Request.Params["index"]) + 1;

IQueryable answer = xt.Answer.Skip(RowCount * (Current - 1)).Take(RowCount);

StringBuilder sb = new StringBuilder();

sb.Append("

回答内容回答用户名创建时间

foreach (Answer a in answer)

{

sb.Append("

" + a.Answer_content + "" + a.Answer_UserName + "" + a.Answer_Creatime + "");

}

sb.Append("

");

context.Response.Write(sb);

}

PreviewHandler.ashx

复制代码 代码如下:

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

int RowCount = 10;

int Current = Convert.ToInt32(context.Request.Params["index"]) - 1;

IQueryable answer = xt.Answer.Skip(RowCount * (Current - 1)).Take(RowCount);

StringBuilder sb = new StringBuilder();

sb.Append("

回答内容回答用户名创建时间

foreach (Answer a in answer)

{

sb.Append("

" + a.Answer_content + "" + a.Answer_UserName + "" + a.Answer_Creatime + "");

}

sb.Append("

");

context.Response.Write(sb);

}

三个文件其实代码大多类似,然后通过html或者aspx文件来调用,用Jquery.get()

复制代码 代码如下:

var Init=function(){

$.get("PageHandler.ashx",function(data){

document.getElementById('content').innerHTML=data;

$('.currIndex').attr('value',"1");

document.getElementById("PageInfo").innerHTML="当前第1页";

});

}

var Preview=function(){

var current=$('.currIndex').attr('value');

var pre=Number(current)-1;

$.get("PreviewHandler.ashx",{index:current},function(data){

document.getElementById('content').innerHTML=data;

$('.currIndex').attr('value',pre);

document.getElementById("PageInfo").innerHTML="当前第"+pre+"页";

});

}

var Next=function(){

var current=$('.currIndex').attr('value');

var next=Number(current)+1;

$.get("NextHandler.ashx",{index:current},function(data){

document.getElementById('content').innerHTML=data;

$('.currIndex').attr('value',next);

document.getElementById("PageInfo").innerHTML="当前第"+next+"页";

});

}

调用.ashx文件生成的数据即可,点击下一页,将NextHandler.ashx文件的内容覆盖PageHandler.ashx文件内容。

结果如图:

有待解决的问题是,对这些行进行编辑,我在.ashx文件加了 一个

而且在.aspx文件上也写了del 方法,但是会报错, object expected error ,这个错误,应该是找不到 del方法吧,他们的生成时间,不懂,还未解决,

谁能解决可以告诉我。。。相关阅读:

浅谈在ASP.NET中数据有效性校验的方法

CSS高级技巧之圆角矩形下

HTML标记语言——表单

探秘Discuz!NT2.5之社区辩论贴功能

教你用dedecms快速制作电影站点

Linux下将.cue/.bin转换为.iso的方法

Windows系统进程轻松管理的小工具

Oracle与MySQL删除字段时的处理对照

js下判断 iframe 是否加载完成的完美方法

MSSQL 将截断字符串或二进制数据问题的解决方法

“增强js程序代码的健壮性”之我见大量示例代码

asp.net中Response.Redirect与Server.Transfer的区别分析

利用CSS的媒体类型满足访客需求

Windows 窗体的.Net 框架绘图技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值