jq分页 不刷新页面_jquery无刷新分页

希望有机会能和大家一起交流学习,220897863程序员之家群欢迎大家加入

在现在的项目中使用jquery实现无刷新的分页,数据库采用存储过程进行分页,具体代码就不说了,主要看前段的实现

PageChage.ascx是一个分页用户控件,可以将它直接拖动到页面中使用。以下是html源码,包含一个分页的js和导航div

首页 上一页 下一页

id="aLastPage">末页

转到

当前显示第

SearchPaging.js文件主要完成对服务器的查询请求同时接受到服务器返回信息后呈现数据生成导航信息,PagingInfo对象中包含了查询请求的地址,查询条件以及分页信息

//分页数据*********************************

var PagingInfo =

{

PageUrl: "",//ajax请求的地址

Search: "",//查询条件

TotalRecord: 0,

PageIndex: 1,

PageSize: 1,

OrderKey: "",

IsAsc: 0,//降序

IsCount: 1,

Pages: 0

};

//*******************************************

//取得服务器端数据***************************

function GetInfos(btn) {

if (btn != undefined && btn != null)

btn.attr("disabled", true);

$.ajax({

type: "POST",

url: PagingInfo.PageUrl,

cache: false,

data:

PagingInfo.Search + "&PageSize=" + escape(PagingInfo.PageSize) + "&PageIndex=" + escape(PagingInfo.PageIndex) + "&OrderKey=" + escape(PagingInfo.OrderKey) + "&isASC=" + escape(PagingInfo.IsAsc) + "&isCount=" + escape(PagingInfo.IsCount)

,

beforeSend: function() {

$("#InformationItems").html("");

$("

       请稍候,正在加载数据...
").appendTo($("#InformationItems"));

},

dataType: "html",

success: function(htmlData) {

//加载取得的数据

$("#InformationItems").html(htmlData);

//设置总数据量

if (PagingInfo.IsCount != 0) {

PagingInfo.TotalRecord = $("#hidTotalRecord").val();

$("#spanTotalRecord").text(PagingInfo.TotalRecord);

}

//是否显示无数据提示

if (PagingInfo.TotalRecord == 0) {

$("

暂无数据
").appendTo($("#InformationItems"));

}

//重新设定所有分页数据

AccountPages();

//当此页无数据显示时,转到上一页

NoDataProcess();

//导航条加载

Navigation_Init();

if (btn != undefined && btn != null)

btn.attr("disabled", false);

},

error: function() {

if (btn != undefined && btn != null)

btn.attr("disabled", false);

alert("对不起,您的操作出现了错误,请重新刷新");

}

});

}

//计算总页数*********************************

function AccountPages() {

PagingInfo.Pages = Math.floor(PagingInfo.TotalRecord / PagingInfo.PageSize);

if (PagingInfo.TotalRecord % PagingInfo.PageSize != 0)

PagingInfo.Pages++;

}

//*******************************************

//当此页无数据显示时,转到上一页*************

function NoDataProcess() {

if (PagingInfo.TotalRecord != 0 && PagingInfo.PageIndex > PagingInfo.Pages) {

PagingInfo.PageIndex = PagingInfo.Pages;

GetInfos();

}

}

//*******************************************

//导航条加载

function Navigation_Init() {

//必须在设置导航条时清除克隆的导航条,以防出现多个同名导航元素ID,造成程序出错

$("#divPagingCopy").text("");

CurrentRecordBeginAndEnd();

SelectPageChange_Init();

PagingInit();

//克隆一个导航条至需要导航的地方

$("#divPaging").clone(true).appendTo($("#divPagingCopy"));

}

//当前显示第0000-00000条

function CurrentRecordBeginAndEnd() {

//计算当前显示的范围

var recordBegin = PagingInfo.PageSize * (PagingInfo.PageIndex - 1);

recordBegin = recordBegin <= 0 ? 1 : recordBegin + 1;

var recordEnd = PagingInfo.PageSize * PagingInfo.PageIndex;

recordEnd = recordEnd > PagingInfo.TotalRecord ? PagingInfo.TotalRecord : recordEnd;

$("#spanCurrentTotal").text(recordBegin + "-" + recordEnd);

}

//下拉列表初始化*****************************

function SelectPageChange_Init() {

var selectPageChange = $("#selectPageTotal");

selectPageChange.attr("length", "0");

for (i = 1; i < PagingInfo.Pages + 1; i++) {

var selected = i == PagingInfo.PageIndex ? "selected" : "";

$("" + i + "").appendTo(selectPageChange);

}

}

//*******************************************

//下拉列表转页*******************************

function ChangePageIndex() {

if (/^\d+$/.test($("#selectPageTotal").val()))

PagingInfo.PageIndex = $("#selectPageTotal").val();

else

PagingInfo.PageIndex = 1;

PagingInfo.IsCount = 0;

GetInfos($(this));

}

//*******************************************

//分页器初始化*******************************

function PagingInit() {

var aFirstPage = $("#aFirstPage");

var aPrevPage = $("#aPrevPage");

var aNextPage = $("#aNextPage");

var aLastPage = $("#aLastPage");

$("#divPaging").find("a").removeClass();

if (PagingInfo.PageIndex == 1 && PagingInfo.TotalRecord > PagingInfo.PageSize) {

aFirstPage.removeAttr("href");

aPrevPage.removeAttr("href");

aFirstPage.addClass("paging_Unlink");

aPrevPage.addClass("paging_Unlink");

aNextPage.attr("href", "javascript:NextPage()");

aLastPage.attr("href", "javascript:LastPage()");

} else if (PagingInfo.PageIndex == PagingInfo.Pages) {

aLastPage.removeAttr("href");

aNextPage.removeAttr("href");

aLastPage.addClass("paging_Unlink");

aNextPage.addClass("paging_Unlink");

aFirstPage.attr("href", "javascript:FirstPage()");

aPrevPage.attr("href", "javascript:PrevPage()");

}

else {

aFirstPage.attr("href", "javascript:FirstPage()");

aNextPage.attr("href", "javascript:NextPage()");

aPrevPage.attr("href", "javascript:PrevPage()");

aLastPage.attr("href", "javascript:LastPage()");

}

if (PagingInfo.Pages <= 1) {

$("#divPaging").find("a").removeAttr("href");

$("#divPaging").find("a").addClass("paging_Unlink");

}

}

//****************************************

//转到首页********************************

function FirstPage() {

PagingInfo.IsCount = 0;

PagingInfo.PageIndex = 1;

GetInfos($(this));

}

//*****************************************

//上一页*********************************

function PrevPage() {

PagingInfo.IsCount = 0;

PagingInfo.PageIndex--;

GetInfos($(this));

}

//*****************************************

//下一页***********************************

function NextPage() {

PagingInfo.IsCount = 0;

PagingInfo.PageIndex++;

GetInfos($(this));

}

//******************************************

//最后一页*********************************

function LastPage() {

PagingInfo.IsCount = 0;

PagingInfo.PageIndex = PagingInfo.Pages;

GetInfos($(this));

}

//******************************************

以下为一个实际使用的列子,此次为了方便就不提供字段查询了

WebForm1.aspx页面是查询页面,

$(document).ready(initEvent);

function initEvent() {

$.ajaxSetup({ cache: false, timeout: 60000 });

PagingInfo.PageUrl = "SearchResult.aspx";//ajax查询请求的处理页面

PagingInfo.Search = "";//无查询条件即查询所有数据

PagingInfo.PageIndex = 1;

PagingInfo.PageSize = 10;

PagingInfo.OrderKey = "PersonInfo.PersonNo";//排序字段,必须提供

PagingInfo.IsCount = 1;

$("#selectPageTotal").change(ChangePageIndex);

$("#Searchbtn").click(function() { SaveSearchInfo(); GetInfos($(this)); });

GetInfos();

}

function SaveSearchInfo() {

PagingInfo.Search = ""

PagingInfo.PageIndex = 1;

PagingInfo.PageSize = 10;

PagingInfo.OrderKey = "PersonInfo.PersonNo";

PagingInfo.IsCount = 1;

}

SearchResult.aspx是查询请求的页面,用于查询生成datatable,并组装html。

后天代码

protected DataTable PersonInfos = null;

protected int TotalRecord = 0;

protected void Page_Load(object sender, EventArgs e)

{

SearchPersonInfo(HttpContext.Current.Request);

}

private void SearchPersonInfo(HttpRequest request)

{

PersonBF personBF = new PersonBF();

PersonSearchInfo personSearchInfo = new PersonSearchInfo();//查询条件的实体类

PageChangingInfo pageChangingInfo = new PageChangingInfo();

pageChangingInfo.PageIndex = string.IsNullOrEmpty(request["PageIndex"].Trim()) ? 1 : int.Parse(request["PageIndex"].Trim());

pageChangingInfo.PageSize = string.IsNullOrEmpty(request["PageSize"].Trim()) ? 10 : int.Parse(request["PageSize"].Trim());

pageChangingInfo.SortExpression = request["OrderKey"].Trim();

pageChangingInfo.SortDerection = string.IsNullOrEmpty(request["isASC"].Trim()) ? 0 : int.Parse(request["isASC"].Trim());

pageChangingInfo.IsCount = string.IsNullOrEmpty(request["IsCount"].Trim()) ? true : Convert.ToBoolean(int.Parse(request["IsCount"].Trim()));

PersonInfos = personBF.GetPersonInfo(personSearchInfo, pageChangingInfo, false);//采用存储过程分页

TotalRecord = pageChangingInfo.ToalRecordCount;

}

前台代码(通过一个隐藏的控件保存记录总数,由客户端js读取):

人员编号姓名身份证号码社保编号户口性质户籍所在地小区

0)

{%>

{

%>

当然我们也可以采用json的方式返回 ,将datatale 中的数据和记录总数封装到json中返回到客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值