>웹 프론트엔드 >JS 튜토리얼 >jQuery getJSON() .ashx는 페이징을 구현합니다(향상된 버전)_jquery

jQuery getJSON() .ashx는 페이징을 구현합니다(향상된 버전)_jquery

WBOY
WBOY원래의
2016-05-16 17:38:581330검색

참고: http://www.jb51.net/article/35110.htm
개선 사항:
1.ashx는 json 데이터를 반환하여 전송되는 데이터 양을 줄이고 html 페이지 스타일 제어를 수행합니다. 또한 더 유연합니다.
2. html 페이지의 jQuery 코드를 3개로 단순화합니다.

1. 테이블에 대한 테스트 데이터 생성:

코드 복사 코드는 다음과 같습니다. :
create table test(id int Identity,title varchar(36))
declare @index int;
set @index = 1; 8888)
시작
테스트(제목) 값 삽입 ​​(newid())
set @index = @index 1
end


2. .html 페이지


type="text/javascript" src=" jquery-1.4.2.min.js">
;body>
< form id="form1" runat="server">




>

코드는 다음과 같습니다.

공용 클래스 핸들러 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
StringBuilder tb = new StringBuilder();
데이터베이스 db = new DataBase();
int 페이지 크기 = 10;
int pageIndex = 0;
문자열 유형 = context.Request.Params["type"];
스위치(유형)
{
case "first":
DataTable dt1 = db.GetDataSet("select top 10 * from test", null).Tables[0];
tb.Append(Common.DataTableToJSON(dt1, true)); //DataTable转为JSON
break;
case "next":
pageIndex = Convert.ToInt32(context.Request.Params["index"]);
DataTable dt2 = db.GetDataSet("select top " pageSize.ToString() " * from test where id> (select max(id) from (select top " (pageSize * pageIndex).ToString() " id from test ) t)", null).테이블[0];
tb.Append(Common.DataTableToJSON(dt2, true));
휴식;
case "pre":
pageIndex = Convert.ToInt32(context.Request.Params["index"]);
DataTable dt3 = db.GetDataSet("select top " pageSize.ToString() " * from test where id> (select max(id) from (select top " (pageSize * pageIndex).ToString() " id from test ) t)", null).테이블[0];
tb.Append(JSONHelper.DataTableToJSON(dt));
휴식;
}
context.Response.Write(tb.ToString());
}
public bool IsReusable
{
get
{
return false;
}
}
}

4、效果
jQuery getJSON() .ashx는 페이징을 구현합니다(향상된 버전)_jquery 
------------ ------------------------------------- ------------------------------------- -----
备注 (2010-7-10):
사용sql2005 row_number()分页方法,.ashx页면代码可简化为
复主代码 代码如下:

public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context .Response.ContentType = "텍스트/일반";
데이터베이스 db = new DataBase();
int 페이지 크기 = 10;
int pageIndex = 0;
int.TryParse(context.Request.Params["index"], out pageIndex);
문자열 유형 = context.Request.Params["type"];
string sql = string.Format("select * from ( select row_number() over (order by id) as rowNum,* from test) as t "
" where rowNum>{0} 및 rowNum<={ 1}", pageIndex * pageSize, (pageIndex 1) * pageSize);
DataTable dt = db.GetDataSet(sql, null).Tables[0];
context.Response.Write(JSONHelper.DataTableToJSON(dt));
}
public bool IsReusable
{
get
{
return false;
}
}
}

备注
其中JSONHelper.DataTableToJSON(dt)方法为DataTable解析成JSON,见另一篇문서JSONHelper帮助类
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.