참고: http://www.jb51.net/article/35110.htm 개선 사항: 1.ashx는 json 데이터를 반환하여 전송되는 데이터 양을 줄이고 html 페이지 스타일 제어를 수행합니다. 또한 더 유연합니다. 2. html 페이지의 jQuery 코드를 3개로 단순화합니다.
공용 클래스 핸들러 : 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; } } }
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; } } }