本文實例講述了asp.net+ajax簡單分頁實現方法。,具體如下:
這里涉及兩個.aspx文件,一個叫Default.aspx,一個叫AjaxOperations.aspx,第一個用來顯示一些測試數據,后一個用來對分頁進行處理。js文件夾下面還有一個testJs.js的文件,它就是ajax操作的核心部分。不錯,code is cheap??创a:
/*testJs.js*/// 此函數等價于document.getElementById /document.allfunction $(s) { if (document.getElementById) { return eval('document.getElementById("' + s + '")'); } else { return eval('document.all.' + s); } }// 創建 XMLHttpRequest對象,以發送ajax請求 function createXMLHTTP() { var xmlHttp = false; var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; for (var i = 0; i < arrSignatures.length; i++) { try { xmlHttp = new ActiveXObject(arrSignatures[i]); return xmlHttp; } catch (oError) { xmlHttp = false; //ignore } } // throw new Error("MSXML is not installed on your system."); if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } return xmlHttp;}//window.onload = showPages(1, 10, 100);//cP目前頁碼, tP總頁數 ,tN總記錄數 function showPages(cP, tP, tN) { //處理頁碼大于總頁數 if (cP >= tP) { cP = tP; } //處理頁碼小于1 if (cP < 1) { cP = 1; } var trPg = $("trPager"); var newCellOne = trPg.insertCell(0); newCellOne.width = "20%"; var newCellTwo = trPg.insertCell(1); newCellTwo.width = "15%"; newCellTwo.id = "pgSummary"; var newCellThree = trPg.insertCell(2); newCellThree.width = "45%"; newCellThree.id = "pgNumContext"; var newCellFour = trPg.insertCell(3) newCellFour.width = "20%"; newCellTwo.innerHTML = "共<span id='totalNum'>" + tN + "</span>項 第<span id='cuPgNumber' style='color:red'>" + cP + "</span>/<span id='sumPgNumber' >" + tP + "</span>頁"; var pageHtml = " <a href='#' onclick='gotoPage(1)'>首頁</a>"; pageHtml += "<a id='prevPg' href='#' onclick='goToNextPrev(-1)'> 上頁 </a>"; for (var i = 1; i < tP + 1; i++) { var numColor = ""; if (i == 1) numColor = "red"; pageHtml += "<a id='numPg" + i + "' style='color:" + numColor + "' href='#' onclick='gotoPage(" + i + ")'>" + i + " </a>"; } pageHtml += "<a id='nextPg' href='#' onclick='goToNextPrev(1)'> 下頁</a>"; pageHtml += "<a href='#' onclick='gotoPage(" + tP + ")'> 尾頁</a>"; pageHtml += " <input name='pgNumber' type='text' id='pgNumber' size='3' onKeyPress='return handleEnterOnPgNumber();'> " + "<input name='goto' type='button' id='goto' value='go' onClick='forward()'>"; newCellThree.innerHTML = pageHtml;}//構造頁面跳轉的js函數,函數中需要判斷輸入的頁號是否是合法的數值 function forward() { if (!(/^([-]){0,1}([0-9]){1,}$/.test($("pgNumber").value))) { //輸入的值不合法 alert("請輸入合法的頁號!"); $("pgNumber").focus(); $("pgNumber").select(); } else gotoPage($("pgNumber").value);}//處理在跳轉頁面上按下回車的情況 function handleEnterOnPgNumber() { if (event.keyCode == 13) { forward(); return false; } return true;}function gotoPage(oNum) { // 頁數不能為0或者為負數 (首頁,尾頁) if (oNum > 0) { var totalNumber = parseInt($("totalNum").innerText); //總記錄數 var curPgNumber = parseInt($("cuPgNumber").innerText); var totalPgNumber = parseInt($("sumPgNumber").innerText); // 總頁數 if (parseInt(oNum) <= totalPgNumber) { chgPages(oNum, totalPgNumber, totalNumber); for (var k = 1; k < totalPgNumber + 1; k++) { $("numPg" + k).style.color = ""; } $("numPg" + oNum).style.color = "red"; getPagerInfo(oNum); } else { alert("請輸入合法的頁號!"); $("pgNumber").focus(); $("pgNumber").select(); return; } }}function goToNextPrev(oNum) { var addNum = parseInt(oNum); var totalNumber = parseInt($("totalNum").innerText); //總記錄數 var curPgNumber = parseInt($("cuPgNumber").innerText); var totalPgNumber = parseInt($("sumPgNumber").innerText); // 總頁數 //如果當前頁是第一頁,點擊前一頁不用刷新 //如果當前頁是最后一頁,點擊下一頁不用刷新 if ((curPgNumber + addNum) > 0 && (curPgNumber + addNum) <= totalPgNumber) { chgPages(parseInt(curPgNumber + addNum), totalPgNumber, totalNumber); for (var k = 1; k < totalPgNumber + 1; k++) { $("numPg" + k).style.color = ""; } $("numPg" + parseInt(curPgNumber + addNum)).style.color = "red"; getPagerInfo(parseInt(curPgNumber + addNum)); }}function chgPages(cuPg, toPg, tNum) { // $("totalNum").innerHTML = tNum; $("cuPgNumber").innerHTML = cuPg; //$("sumPgNumber").innerHTML = toPg;}function getPagerInfo(oNum) { // 處理請求,更新內容 var xmlReq = createXMLHTTP(); xmlReq.open("post", "/AjaxOperations.aspx?pgNumber=" + oNum, true); xmlReq.onreadystatechange = function() { if (xmlReq.readyState == 4) { if (xmlReq.status == 200) { //xmlReq.responseText為輸出的那段字符串 $("tbTest").innerHTML = xmlReq.responseText; } else { $("tbTest").innerHTML = " 獲取數據中,請稍等..."; //alert("Connect the server failed!"); } } } xmlReq.send(null);}
新聞熱點
疑難解答
圖片精選