最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery getJSON()+.ashx 實現(xiàn)分頁(改進版)

 更新時間:2013年03月28日 12:07:39   作者:  
參考了上一篇Asp .net +jquery +.ashx 文件實現(xiàn)分頁并作了改進:ashx返回json數(shù)據(jù),減少傳輸數(shù)據(jù)量,html頁面樣式控制也比較靈活,感興趣的朋友可以參考下哈
參考了:http://m.fzitv.net/article/35110.htm
改進的地方:
1、ashx返回json數(shù)據(jù),減少傳輸數(shù)據(jù)量,html頁面樣式控制也比較靈活;
2、改寫html頁的jQuery代碼;
3、把3個ashx文件簡化為1個。
一、創(chuàng)建表的測試數(shù)據(jù)
復(fù)制代碼 代碼如下:

create table test(id int identity,title varchar(36))
declare @index int;
set @index = 1;
while(@index < 8888)
begin
insert test(title) values (newid())
set @index = @index + 1
end

二、.html頁
復(fù)制代碼 代碼如下:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function() {
Init();
});
function Init() {
$("#Content").html("");
$("#pageIndex").val(0);
$("#pageInfo").append("當(dāng)前第1頁");
$.getJSON("Handler.ashx", { type: 'first' }, function(data) {
$("#Content").append("<tr><th style='width:130px'>id</th><th style='width:150px'>title</th></tr>");
$.each(data, function(i) {
$("#Content").append("<tr><td>" + data[i].id + "</td><td>" + data[i].title + "</td></tr>");
})
})
}
function Pre() {
var currIndex = Number($("#pageIndex").val()) - 1;
Go('pre', currIndex);
}
function Next() {
var currIndex = Number($("#pageIndex").val()) + 1;
Go('next', currIndex);
}
function Go(type, index) {
$("#Content").html("");
$("#pageInfo").html("");
if (index == 0 || index == -1) { Init(); return; }
$.getJSON("Handler.ashx", { type: type, index: index }, function(data) {
$("#Content").append("<tr><th style='width:130px'>id</th><th style='width:150px'>title</th></tr>");
$.each(data, function(i) {
$("#Content").append("<tr><td>" + data[i].id + "</td><td>" + data[i].title + "</td></tr>");
})
$("#pageInfo").append("當(dāng)前第 " + (index + 1) + " 頁");
$("#pageIndex").val(index);
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="width: 100%">
<table id="Content" >
</table>
</div>
<div id="PagePanel" style="margin-left:20px">
<label id="pageInfo"></label>
<a href="#" onclick="Pre()">上一頁</a>&nbsp; &nbsp;
<a href="#" onclick="Next()">下一頁</a>
</div>
<input type="hidden" value="0" id="pageIndex" />
</form>
</body>
</html>

三、.ashx頁
復(fù)制代碼 代碼如下:

public class Handler : 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;
string type = context.Request.Params["type"];
switch (type)
{
case "first":
DataTable dt1 = db.GetDataSet("select top 10 * from test", null).Tables[0];
tb.Append(Common.DataTableToJSON(dt1, true)); //DataTable轉(zhuǎn)為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).Tables[0];
tb.Append(Common.DataTableToJSON(dt2, true));
break;
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).Tables[0];
tb.Append(JSONHelper.DataTableToJSON(dt));
break;
}
context.Response.Write(tb.ToString());
}
public bool IsReusable
{
get
{
return false;
}
}
}

四、效果
 
--------------------------------------------------------------------------------------------------------------------
備注 (2010-7-10):
用sql2005 row_number()分頁方法,.ashx頁面代碼可簡化為
復(fù)制代碼 代碼如下:

public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
DataBase db = new DataBase();
int pageSize = 10;
int pageIndex = 0;
int.TryParse(context.Request.Params["index"], out pageIndex);
string type = 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 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幫助類

相關(guān)文章

  • jquery點擊展示與隱藏更多內(nèi)容

    jquery點擊展示與隱藏更多內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了jquery點擊展示與隱藏更多內(nèi)容的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • jquery $.each()使用探討

    jquery $.each()使用探討

    想必大家對jquery $.each()并不陌生吧,使用它可以進行元素的遍歷,下面有個不錯的示例,感興趣的朋友可以參考下
    2013-09-09
  • 動態(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法

    動態(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法

    下面小編就為大家?guī)硪黄獎討B(tài)生成的DOM不會觸發(fā)onclick事件的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 使用jquery+iframe做一個ajax上傳效果(實例)

    使用jquery+iframe做一個ajax上傳效果(實例)

    下面小編就為大家?guī)硪黄褂胘query+iframe做一個ajax上傳效果(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • jQuery中prop()方法用法實例

    jQuery中prop()方法用法實例

    這篇文章主要介紹了jQuery中prop()方法用法,以實例形式較為詳細(xì)的分析了prop()方法的功能、定義及獲取或者設(shè)置匹配元素屬性值的各種常見使用技巧,需要的朋友可以參考下
    2015-01-01
  • jquery兩種導(dǎo)入方式之本地導(dǎo)入和線上導(dǎo)入

    jquery兩種導(dǎo)入方式之本地導(dǎo)入和線上導(dǎo)入

    這篇文章主要給大家介紹了關(guān)于jquery兩種導(dǎo)入方式之本地導(dǎo)入和線上導(dǎo)入的相關(guān)資料,jQuery是一款JavaScript庫,封裝了JavaScript相關(guān)方法調(diào)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 基于jQuery使用Ajax動態(tài)執(zhí)行模糊查詢功能

    基于jQuery使用Ajax動態(tài)執(zhí)行模糊查詢功能

    這篇文章主要介紹了基于jQuery使用Ajax動態(tài)執(zhí)行模糊查詢功能,通過實例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • jQuery中dom元素上綁定的事件詳解

    jQuery中dom元素上綁定的事件詳解

    在jquery中綁定事件我們可以使用click、change、mouseout、.bind(),live等待事件來操作,下面我來給大家介紹jQuery使用向DOM元素綁定事件實現(xiàn)程序相關(guān)實例,有需要了解的同不可進入?yún)⒖肌?/div> 2015-04-04
  • jquery插件Jplayer使用方法簡析

    jquery插件Jplayer使用方法簡析

    這篇文章主要介紹了jquery插件Jplayer使用方法簡析,具有實用價值,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論

西峡县| 商水县| 洪湖市| 拉萨市| 奉贤区| 万源市| 公主岭市| 沈丘县| 岫岩| 宜黄县| 五莲县| 灵武市| 江华| 仪征市| 慈利县| 习水县| 陆良县| 清水县| 安平县| 密云县| 行唐县| 青河县| 土默特右旗| 梅河口市| 永定县| 宿松县| 来安县| 门头沟区| 孟州市| 吉木萨尔县| 怀仁县| 腾冲县| 永吉县| 凤庆县| 梅河口市| 东阿县| 曲阳县| 毕节市| 资溪县| 淮安市| 越西县|