国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > AJAX > 正文

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

2024-09-01 08:29:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
之前,服務(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
代碼如下:
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
代碼如下:
<script type="text/javascript">
$(function(){
//-----------------------------------------------------------
function getPageData(pageNo){ //取得某頁(yè)數(shù)據(jù)的方法
$.post("PageService.ashx",{"action":"GetPageData","PageNo":pageNo},function(data,status){
if(status=="success"){
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海林市| 伊宁县| 邛崃市| 敖汉旗| 剑阁县| 孝昌县| 名山县| 三门县| 津南区| 枣阳市| 昆明市| 治多县| 峨边| 石嘴山市| 蛟河市| 微山县| 涡阳县| 双江| 宾川县| 博客| 五华县| 靖安县| 基隆市| 屯昌县| 高阳县| 尼木县| 阿拉尔市| 炉霍县| 额济纳旗| 汕头市| 陇南市| 汾西县| 喀喇沁旗| 化德县| 永福县| 姜堰市| 八宿县| 陇西县| 大英县| 西林县| 潢川县|