佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 用AJAX實(shí)現(xiàn)的無(wú)刷新的分頁(yè)實(shí)現(xiàn)代碼(asp.net)

用AJAX實(shí)現(xiàn)的無(wú)刷新的分頁(yè)實(shí)現(xiàn)代碼(asp.net)

熱門標(biāo)簽:服務(wù)器配置 電子圍欄 團(tuán)購(gòu)網(wǎng)站 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 Linux服務(wù)器 阿里云
之前,服務(wù)器返回的數(shù)據(jù)都是用xml的形式傳給客戶端的,但是xml傳一個(gè)類的對(duì)象的數(shù)據(jù)會(huì)很長(zhǎng),流量大,所以現(xiàn)在都是改用json來(lái)傳數(shù)據(jù),復(fù)雜數(shù)據(jù)用json,簡(jiǎn)單數(shù)據(jù)用string。所有AJAX中的x已經(jīng)失去了它原來(lái)的意義。
  大家都知道JQuery,是一個(gè)Javascript的封裝庫(kù),當(dāng)然JQuery也實(shí)現(xiàn)了對(duì)AJAX的封裝,這里將分頁(yè)就是直接用JQuery框架來(lái)講哈,比較簡(jiǎn)單。
  首先講一下原理:分頁(yè)有兩個(gè)要點(diǎn):1.有多少頁(yè),2.每頁(yè)有多少條記錄??傢?yè)數(shù)和每頁(yè)數(shù)據(jù)都是要從服務(wù)器端返回的。所以我們就先來(lái)建一個(gè)一般處理程序:PageService.ashx,處理用戶的請(qǐng)求。取得頁(yè)數(shù)參數(shù):GetPageCount,取得頁(yè)數(shù)據(jù)參數(shù)用GetPagedData,和PageNo。一下是一般處理程序PageService.ashx代碼:
PageService.ashx
復(fù)制代碼 代碼如下:

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action=context.Request["action"];
if (action == "GetPageCount") //如果請(qǐng)求類型為取得總頁(yè)數(shù),則如下處理。
{
//該方法是建立在強(qiáng)連接DataSet內(nèi)的,取得總記錄數(shù)的方法
int counts = new CommentTableAdapter().GetComentCount().Value;
int page = counts / 10; //默認(rèn)每頁(yè)10條數(shù)據(jù)
if (counts%10 != 0)
{
page++;
}
context.Response.Write(page); //取得數(shù)據(jù)后返回給客戶端。
}
else if (action == "GetPageData") //請(qǐng)求類型是取得某頁(yè)的數(shù)據(jù),則還會(huì)傳一個(gè)頁(yè)碼過(guò)來(lái)
{
int pageNo = Convert.ToInt32(context.Request["PageNo"]);
//該方法是給出頁(yè)數(shù),去數(shù)據(jù)庫(kù)表內(nèi)取得對(duì)應(yīng)頁(yè)的數(shù)據(jù)
var data = new CommentTableAdapter().GetPageData((pageNo-1)*10+1,pageNo*10);
var p1 = data.Select( c =>new {c.name,c.Comment });
JavaScriptSerializer jss = new JavaScriptSerializer();
//將取得數(shù)據(jù)用json序列化后傳回客戶端
context.Response.Write(jss.Serialize(p1));
}
}

接下來(lái)是在htm頁(yè)面呈現(xiàn)數(shù)據(jù)。
  我在這里只是講原理,所以美工方面就不苛求了。假設(shè)每頁(yè)數(shù)據(jù)都是放在一個(gè)ul>li>/li>/ul>里面,一個(gè)li就裝一條數(shù)據(jù)。頁(yè)碼放在一個(gè)table內(nèi)顯示,一行n列的table,每一列就一個(gè)頁(yè)面。
body>
ul id="Comment">/ul>br />
頁(yè)數(shù):
table id="pageNo">/table>
/body>
接下來(lái)就是用JQuery,在頁(yè)面加載的時(shí)候給Comment這個(gè)ul和pageNo這個(gè)table初始化數(shù)據(jù)。頁(yè)面加載默認(rèn)顯示第一頁(yè)數(shù)據(jù)。以下是:無(wú)刷新分頁(yè).htm頁(yè)面的JQuery代碼:
無(wú)刷新分頁(yè).htm
復(fù)制代碼 代碼如下:

script type="text/javascript">
$(function(){
//-----------------------------------------------------------
function getPageData(pageNo){ //取得某頁(yè)數(shù)據(jù)的方法
$.post("PageService.ashx",{"action":"GetPageData","PageNo":pageNo},function(data,status){
if(status=="success"){
$("#Comment").empty();
var comments=$.parseJSON(data); //反序列化json數(shù)據(jù)。
for(var i=0;icomments.length;i++){
var row=comments[i];
var li= $("li>"+row.name+" : "+row.Comment+"/li>");
$("#Comment").append(li); //每取出一條數(shù)據(jù)就創(chuàng)建一個(gè)li并append到Comment/ul內(nèi)。
}
}
});
}
//-------------------------------------------------------------------
getPageData(1); //首次進(jìn)入頁(yè)面,看到的是第一頁(yè)的數(shù)據(jù)
//----------------------------------------------------------------/
//取得所有的頁(yè)數(shù)并且初始化分頁(yè)按鈕
$.post("PageService.ashx",{"action":"GetPageCount"},function(data,status){
if(status=="success"){
var tr1=$("tr>/tr>");
var pageNo=parseInt(data);
for(var i=1;i=pageNo;i++){
var td=$("td>a href=''>"+i+"/a>/td>");
tr1.append(td);
}
$("#pageNo").append(tr1);
$("#pageNo a").click(function(e){ //頁(yè)碼創(chuàng)建后,就為每一個(gè)頁(yè)碼監(jiān)聽(tīng)一個(gè)click事件。
e.preventDefault(); //取消a的默認(rèn)跳轉(zhuǎn)行為
getPageData($(this).html()); //點(diǎn)擊后就去執(zhí)行取頁(yè)數(shù)據(jù)的操作。
});
}
});
//----------------------------------------------------------------------------
});
/script>

歡迎各位指正,謝謝。
您可能感興趣的文章:
  • JQuery+Ajax無(wú)刷新分頁(yè)的實(shí)例代碼
  • jQuery Pagination Ajax分頁(yè)插件(分頁(yè)切換時(shí)無(wú)刷新與延遲)中文翻譯版
  • JS+Ajax+Jquery實(shí)現(xiàn)頁(yè)面無(wú)刷新分頁(yè)以及分組 超強(qiáng)的實(shí)現(xiàn)
  • php+ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)的方法
  • AspNetAjaxPager,Asp.Net通用無(wú)刷新Ajax分頁(yè)控件,支持多樣式多數(shù)據(jù)綁定
  • ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)(php)
  • php ajax無(wú)刷新分頁(yè),支持id定位
  • 在Thinkphp中使用ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)的方法
  • php+ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)
  • 簡(jiǎn)單實(shí)現(xiàn)Ajax無(wú)刷新分頁(yè)效果

標(biāo)簽:大理 衢州 蚌埠 棗莊 廣元 衡水 萍鄉(xiāng) 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用AJAX實(shí)現(xiàn)的無(wú)刷新的分頁(yè)實(shí)現(xiàn)代碼(asp.net)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    赤水市| 金平| 富裕县| 平乡县| 青冈县| 铁力市| 双桥区| 永兴县| 姜堰市| 上杭县| 绥德县| 苍溪县| 南江县| 格尔木市| 甘德县| 南城县| 绩溪县| 安庆市| 肥乡县| 嵊州市| 建湖县| 石屏县| 洪洞县| 句容市| 中阳县| 休宁县| 营口市| 翼城县| 潍坊市| 禄丰县| 边坝县| 慈溪市| 西青区| 新建县| 景宁| 日喀则市| 新丰县| 仁化县| 五河县| 松阳县| 康乐县|