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

用AJAX實現(xiàn)的無刷新的分頁實現(xiàn)代碼(asp.net)

 更新時間:2011年04月19日 00:59:12   作者:  
最近學習了AJAX技術。AJAX,指的是異步的Javascript和xml。它的基本原理就是頁面用Javascript發(fā)送一個異步的http請求到服務器,服務器返回數(shù)據(jù)后,再用Javascript靜態(tài)的去更改頁面某個地方的值,而無需提交表單。
之前,服務器返回的數(shù)據(jù)都是用xml的形式傳給客戶端的,但是xml傳一個類的對象的數(shù)據(jù)會很長,流量大,所以現(xiàn)在都是改用json來傳數(shù)據(jù),復雜數(shù)據(jù)用json,簡單數(shù)據(jù)用string。所有AJAX中的x已經(jīng)失去了它原來的意義。
  大家都知道JQuery,是一個Javascript的封裝庫,當然JQuery也實現(xiàn)了對AJAX的封裝,這里將分頁就是直接用JQuery框架來講哈,比較簡單。
  首先講一下原理:分頁有兩個要點:1.有多少頁,2.每頁有多少條記錄。總頁數(shù)和每頁數(shù)據(jù)都是要從服務器端返回的。所以我們就先來建一個一般處理程序:PageService.ashx,處理用戶的請求。取得頁數(shù)參數(shù):GetPageCount,取得頁數(shù)據(jù)參數(shù)用GetPagedData,和PageNo。一下是一般處理程序PageService.ashx代碼:
PageService.ashx
復制代碼 代碼如下:

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action=context.Request["action"];
if (action == "GetPageCount") //如果請求類型為取得總頁數(shù),則如下處理。
{
//該方法是建立在強連接DataSet內的,取得總記錄數(shù)的方法
int counts = new CommentTableAdapter().GetComentCount().Value;
int page = counts / 10; //默認每頁10條數(shù)據(jù)
if (counts%10 != 0)
{
page++;
}
context.Response.Write(page); //取得數(shù)據(jù)后返回給客戶端。
}
else if (action == "GetPageData") //請求類型是取得某頁的數(shù)據(jù),則還會傳一個頁碼過來
{
int pageNo = Convert.ToInt32(context.Request["PageNo"]);
//該方法是給出頁數(shù),去數(shù)據(jù)庫表內取得對應頁的數(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));
}
}

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

<script type="text/javascript">
$(function(){
//-----------------------------------------------------------
function getPageData(pageNo){ //取得某頁數(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;i<comments.length;i++){
var row=comments[i];
var li= $("<li>"+row.name+" : "+row.Comment+"</li>");
$("#Comment").append(li); //每取出一條數(shù)據(jù)就創(chuàng)建一個li并append到Comment/ul內。
}
}
});
}
//-------------------------------------------------------------------
getPageData(1); //首次進入頁面,看到的是第一頁的數(shù)據(jù)
//----------------------------------------------------------------/
//取得所有的頁數(shù)并且初始化分頁按鈕
$.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){ //頁碼創(chuàng)建后,就為每一個頁碼監(jiān)聽一個click事件。
e.preventDefault(); //取消a的默認跳轉行為
getPageData($(this).html()); //點擊后就去執(zhí)行取頁數(shù)據(jù)的操作。
});
}
});
//----------------------------------------------------------------------------
});
</script>

歡迎各位指正,謝謝。

相關文章

  • AjaxFileUpload結合Struts2實現(xiàn)多文件上傳(動態(tài)添加文件上傳框)

    AjaxFileUpload結合Struts2實現(xiàn)多文件上傳(動態(tài)添加文件上傳框)

    本文是腳本之家小編給大家分享的AjaxFileUpload結合Struts2實現(xiàn)多文件上傳功能,如果項目需求是不確定多少個文件,我們需要動態(tài)的添加文件上傳框,具體實現(xiàn)代碼大家參考下本文
    2017-09-09
  • Ajax使用雜談 也許也是亂彈

    Ajax使用雜談 也許也是亂彈

    Google Suggest 和Google Map的出現(xiàn),引起了我們Web開發(fā)者的一次震動。
    2010-05-05
  • 使用Ajax實現(xiàn)簡單的帶百分比進度條實例

    使用Ajax實現(xiàn)簡單的帶百分比進度條實例

    最近做項目遇到這樣的需求要求當進行文件長傳保存等操作時,能在頁面顯示一個帶百分比的進度條,給用戶一個好的交互體驗,下面通過實例代碼給大家介紹基于ajax實現(xiàn)帶百分比進度條效果,需要的的朋友參考下吧
    2017-07-07
  • Ajax驗證用戶名是否存在的實例代碼

    Ajax驗證用戶名是否存在的實例代碼

    這篇文章主要介紹了Ajax驗證用戶名是否存在的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • ajax和jsonp跨域的原理本質詳解

    ajax和jsonp跨域的原理本質詳解

    跨域問題是我們在開發(fā)中經(jīng)常會遇到的一個需求,下面這篇文章主要給大家介紹了關于ajax和jsonp跨域的原理本質,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • ajax 異步上傳帶進度條視頻并提取縮略圖

    ajax 異步上傳帶進度條視頻并提取縮略圖

    這篇文章主要介紹了ajax 異步上傳帶進度條視頻并提取縮略圖的相關資料,需要的朋友可以參考下
    2015-09-09
  • 如何使用ajax讀取Json中的數(shù)據(jù)

    如何使用ajax讀取Json中的數(shù)據(jù)

    這篇文章主要介紹了如何使用ajax讀取Json中的數(shù)據(jù),如何使用AJAX讀取Json數(shù)組里面的數(shù)據(jù),感興趣的小伙伴們可以參考一下
    2016-04-04
  • react axios 跨域訪問一個或多個域名問題

    react axios 跨域訪問一個或多個域名問題

    這篇文章主要介紹了react axios 跨域訪問一個或多個域名問題,本文通過實例代碼截圖的形式給大家展示的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • js ajax加載時的進度條代碼

    js ajax加載時的進度條代碼

    在web頁面中使用ajax加載進度條,可以讓用戶預先判斷等待的時間,而且還可以減少用戶等待信息加載過程中的心理焦慮感,所以進度條加載必不可少,下面小編給大家介紹ajax加載進度條代碼是如何實現(xiàn)的
    2015-10-10
  • 表單上傳功能實現(xiàn) ajax文件異步上傳

    表單上傳功能實現(xiàn) ajax文件異步上傳

    這篇文章主要為大家詳細介紹了表單上傳功能和文件上傳功能實現(xiàn),ajax文件異步上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論

绥化市| 天津市| 宁明县| 且末县| 乌鲁木齐县| 镇巴县| 浮山县| 定西市| 进贤县| 勃利县| 女性| 灵武市| 延边| 陇西县| 郁南县| 南安市| 阜阳市| 巴楚县| 恩平市| 讷河市| 望谟县| 远安县| 中西区| 桂林市| 海城市| 毕节市| 牙克石市| 达州市| 驻马店市| 黔东| 嘉鱼县| 任丘市| 汝南县| 平凉市| 漯河市| 拉孜县| 历史| 金湖县| 双牌县| 宕昌县| 体育|