首頁 > web前端 > js教程 > jQuery getJSON() .ashx 實作分頁(改良版)_jquery

jQuery getJSON() .ashx 實作分頁(改良版)_jquery

WBOY
發布: 2016-05-16 17:38:58
原創
1330 人瀏覽過

參考了:http://www.jb51.net/article/35110.htm
改進的地方:
1、ashx返回json數據,減少傳輸數據量,html頁面樣式控制也比較靈活;
2、改寫html頁的jQuery程式碼;
3、把3個ashx檔簡化為1個。
一、建立表格的測試資料

複製程式碼



複製程式碼


程式碼🎜>
create table test(id int identity,title varchar(36))
declare @index int;
set @index = 1;
while(@index begin🎜>while(@index begin🎜>while(@index begin🎜>while(@index begin🎜>begin
insert test(title) values (newid()) set @index = @index 1 end 二、.html頁


二、。 >



複製程式碼


程式碼如下:













上一頁   
下一頁 三、.ashx頁 複製程式碼複製程式碼 程式碼如下
公共類別處理程序:IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
StringBuilder tb = new StringBuilder();
DataBase db = new DataBase();
int pageSize = 10;
int pageIndex = 0;
字串型別 = context.Request.Params["type"];
switch (type)
{
case "first":
DataTable dt1 = db.GetDataSet("從測驗中選取前10個*", 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 testlect top " (pageSize * pageIndex).ToString() " id from test ) ) ) t)", null).Tables[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 testlect top " (pageSize * pageIndex).ToString() " id from test ) ) ) t)", null).Tables[0];
tb.Append(JSONHelper.DataTableToJSON(dt));
休息;
}
context.Response.Write(tb.ToString());
}
public bool IsReusable
{
取得
{
回傳 false;
}
}
}

四、效果
jQuery getJSON() .ashx 實作分頁(改良版)_jquery 
----------- -------------------------------------------------- -------------------------------------------------- -----
備註(2010-7-10):
用sql2005 row_number()分頁方法,.ashx頁碼可簡化為
複製程式碼程式碼如下:

public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context context .Response.ContentType = "文字/純文字";
DataBase db = new DataBase();
int pageSize = 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} and rowNumDataTable dt = db.GetDataSet(sql, null).Tables[0];
context.Response.Write(JSONHelper.DataTableToJSON(dt));
}
public bool IsReusable
{
取得
{
回傳 false;
}
}
}


備註
其中JSONHelper.DataTableToJSON(dt)方法為DataTable解析成JSON,請見另一篇文章JSONHelper 幫助類別
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板