日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java ajax无刷分页_asp.net+ajax+json来实现无刷新分页功能

發布時間:2025/4/16 asp.net 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ajax无刷分页_asp.net+ajax+json来实现无刷新分页功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在做網站就是盡可能的提高用戶體驗,用戶瀏覽網站盡可能不要刷新,響應速度盡可能的快,就是加載速度不好,也要告訴用戶你已經很努力的在加載了(loading.....),下面來看看如何實現此功能

USE [WineShop]

GO

/****** Object: StoredProcedure [dbo].[GetRecordFromPage2005] Script Date: 06/26/2012 13:52:11 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [dbo].[GetRecordFromPage2005]

@fieldlist nvarchar(200) = '*',

@datasrc nvarchar(200),

@filter nvarchar(200) = '',

@orderBy nvarchar(200),

@pageNum int = 1,

@pageSize int = NULL

AS

SET NOCOUNT ON

DECLARE

@STMT nvarchar(max) -- SQL to execute

,@recct int -- total # of records (for GridView paging interface)

IF LTRIM(RTRIM(@filter)) = '' SET @filter = '1 = 1'

IF @pageSize IS NULL BEGIN

SET @STMT = 'SELECT ' + @fieldlist +

'FROM ' + @datasrc +

'WHERE ' + @filter +

'ORDER BY ' + @orderBy

EXEC (@STMT) -- return requested records

END ELSE BEGIN

SET @STMT = 'SELECT @recct = COUNT(*)

FROM ' + @datasrc + '

WHERE ' + @filter

EXEC sp_executeSQL @STMT, @params = N'@recct INT OUTPUT', @recct = @recct OUTPUT

--SELECT @recct AS recct -- return the total # of records

DECLARE

@lbound int,

@ubound int

SET @pageNum = ABS(@pageNum)

SET @pageSize = ABS(@pageSize)

IF @pageNum < 1 SET @pageNum = 1

IF @pageSize < 1 SET @pageSize = 1

SET @lbound = ((@pageNum - 1) * @pageSize)

SET @ubound = @lbound + @pageSize + 1

IF @lbound >= @recct BEGIN

SET @ubound = @recct + 1

SET @lbound = @ubound - (@pageSize + 1) -- return the last page of records if -- no records would be on the

-- specified page

END

SET @STMT = 'SELECT ' + @fieldlist + '

FROM (

SELECT ROW_NUMBER() OVER(ORDER BY ' + @orderBy + ') AS row, *

FROM ' + @datasrc + '

WHERE ' + @filter + '

) AS tbl

WHERE

row > ' + CONVERT(varchar(9), @lbound) + ' AND

row < ' + CONVERT(varchar(9), @ubound)

EXEC (@STMT) -- return requested records

END

上面的分頁的存儲過程

后臺方法我們應該如何調用呢

存儲過程參數說明:

fieldlist:你要顯示的字段,datasrc:表名,filter:過濾條件,orderBy:排序,pageNum:頁數,pagesize:每頁顯示幾條記錄

public static IList WineCommentQueryAll(int pageindex, string orderfiled)

{

using (SqlConnection cn = new SqlConnection(SQLHelp.Conn))

{

cn.Open();

string sql = "GetRecordFromPage2005";

SqlCommand cmd = new SqlCommand(sql, cn);

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@fieldlist", "commentid,commentuser,commenttext,commenttime");

cmd.Parameters.AddWithValue("@datasrc", "tb_WineComment");

cmd.Parameters.AddWithValue("@filter", " ");

cmd.Parameters.AddWithValue("@orderBy", orderfiled);

cmd.Parameters.AddWithValue("@pageNum", pageindex);

cmd.Parameters.AddWithValue("@pagesize", 5);

SqlDataReader dr = cmd.ExecuteReader();

IList list = new List();

while (dr.Read())

{

WineComment wc = new WineComment();

if (dr["CommentID"] != DBNull.Value)

{

wc.CommentID = (int)dr["CommentID"];

}

if (dr["CommentUser"] != DBNull.Value)

{

wc.CommentUser = (string)dr["CommentUser"];

}

if (dr["CommentText"] != DBNull.Value)

{

wc.CommentText = (string)dr["CommentText"];

}

if (dr["CommentTime"] != DBNull.Value)

{

//wc.CommentTime = (DateTime)dr["CommentTime"];

wc.CommentTime = ((DateTime)dr["CommentTime"]).ToString("yyyy-MM-dd HH:mm:ss");

}

list.Add(wc);

}

dr.Close();

return list;

}

}

前臺頁面的js代碼首先要引用

$().ready(function() {

InitWineComment(0);

});

function pageselectCallback(page_id, jq) {

InitWineComment(page_id);

}

function InitWineComment(pageindx)

{

var tbody = "";

$.ajax({

type: "GET",

dataType:"json",???//返回的格式

url:"handler/handler.ashx",??//處理的頁面

data: { action: "GetComments", p: (pageindx+1)},??//附帶的參數

beforeSend:function(){$("#divload").show();$("#Pagination").hide();},

complete:function(){$("#divload").hide();$("#Pagination").show()},

success:function(json) {

$("#comment tr:gt(0)").remove();

$.each(json, function(index, array) {//解析json

var trs = "";

trs += "

" + ((index+1)+5*(pageindx-0))+ ""?? +array['CommentUser'] + "" + array['CommentText'] +??????????????????????? ""+array['CommentTime']?????????????????????? +??????????????????????? "";

tbody += trs;

});

$("#comment").append(tbody);

$("#comment tr:gt(0):odd").attr("class", "odd");

$("#comment tr:gt(0):even").attr("class", "enen");

$("#comment tr:gt(0)").hover(function(){

$(this).addClass('mouseover');

},function(){

$(this).removeClass('mouseover');

});

}});

$("#Pagination").pagination(, {//pagecount為評論的總條數

callback: pageselectCallback, //頁數改變觸發的事件

prev_text: '上一頁',

next_text: '下一頁',

items_per_page:5,? //每頁顯示5條

num_display_entries:6,

current_page:pageindx,? //當前頁

num_edge_entries:2

});

}

Handler.ashx處理頁面的代碼為

case "GetComments":

int pi=int.Parse(context.Request.QueryString["p"].ToString());

string isorder = "commentid desc";

if (pi == 0)

pi = 1;

IList comment= WineCommentManager.WineCommentQueryAll(pi,isorder);

Content = JavaScriptConvert.SerializeObject(comment);

break;

context.Response.Write(Content);

前臺頁面的html的代碼很簡單

網友評論

ID 評論者評論內容評論時間

運行效果如下:

總結

以上是生活随笔為你收集整理的java ajax无刷分页_asp.net+ajax+json来实现无刷新分页功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。