java无刷新分页_无刷新分页

//Repeater分页控件///[ToolboxData("")]publicclassFMPager : WebControl, INamingContainer

{protectedstaticreadonlystringnavigateClassFmt="

{0}
";protectedstaticreadonlystringnavigatePageTotalFmt="
总记录: {0}   页码: {1}/{2}
";protectedstaticreadonlystringnavigateAjaxlinkFmt=" {2}";protectedstaticreadonlystringnavigateDisableLinkFmt=" {0}";protectedstaticreadonlystringnavigateGotoFmt="
转到第  页
";privatePagedDataSource pagedDataSource=null;publicFMPager()

{

pagedDataSource=newPagedDataSource();

}publicoverridevoidDataBind()

{base.DataBind();if(string.IsNullOrEmpty(repeaterId))

{return;

}

Control repeater=FindRepeater(Page);if(repeater==null||!(repeaterisRepeater))

{return;

}

ChildControlsCreated=false;

Repeater finalRepeater=repeaterasRepeater;

pagedDataSource.CurrentPageIndex=currentPageIndex;

pagedDataSource.PageSize=pageSize;

pagedDataSource.VirtualCount=recordCount;

pagedDataSource.DataSource=DataSource;

finalRepeater.DataSource=pagedDataSource;

finalRepeater.DataBind();

}//把数据内容传递到客户端///protectedoverridevoidRender(HtmlTextWriter output)

{if(Site!=null&&Site.DesignMode)

{

CreateChildControls();

}

output.Write(OutputNavigate());base.Render(output);

}//输出导航///protectedvirtualstringOutputNavigate()

{//总页码数intpageCount=recordCount/pageSize;if(recordCount%pageSize!=0)

{

pageCount+=1;

}if(currentPageIndex>pageCount)

{

currentPageIndex=pageCount;

}

StringBuilder sbNavigate=newStringBuilder();//输出跳转到sbNavigate.AppendFormat(navigateGotoFmt, pagerJs, currentPageIndex);//获取第一页、上一页sbNavigate.Append("

  • ");if(currentPageIndex>1&&pageCount>1)

{

sbNavigate.AppendFormat(navigateAjaxlinkFmt, pagerJs,1,"第一页","");

sbNavigate.AppendFormat(navigateAjaxlinkFmt, pagerJs, currentPageIndex-1,"上一页","");

}else{

sbNavigate.Append(string.Format(navigateDisableLinkFmt,"第一页"));

sbNavigate.Append(string.Format(navigateDisableLinkFmt,"上一页"));

}//获取数字页intnavigateCount=10;//每10页进行导航intnavigateTotal=pageCount/navigateCount;//总计能生成多少个数字导航intpageInNavigate=((currentPageIndex-1)/navigateCount)+1;//当前在第几个数字导航中//计算数字导航开始页序及结束页序intstartIndex=(pageInNavigate-1)*navigateCount+1;//数字导航开始页序intendIndex=startIndex+navigateCount-1;//数字导航结束页序if(endIndex>pageCount)

{

endIndex=pageCount;

}stringcurrentPageClass="";for(inti=startIndex; i<=endIndex; i++)

{

currentPageClass="";if(i==currentPageIndex)

{

currentPageClass="pageactive";

}

sbNavigate.AppendFormat(navigateAjaxlinkFmt, pagerJs, i, i, currentPageClass);

}//获取下一页、最后页if(currentPageIndex!=pageCount&&pageCount>1)

{

sbNavigate.AppendFormat(navigateAjaxlinkFmt, pagerJs, currentPageIndex+1,"下一页","");

sbNavigate.AppendFormat(navigateAjaxlinkFmt, pagerJs, pageCount,"最后页","");

}else{

sbNavigate.AppendFormat(navigateDisableLinkFmt,"下一页");

sbNavigate.AppendFormat(navigateDisableLinkFmt,"最后页");

}

sbNavigate.Append("

");//输出总页数、当前页sbNavigate.AppendFormat(navigatePageTotalFmt, recordCount, currentPageIndex, pageCount);returnstring.Format(navigateClassFmt, sbNavigate.ToString());

}//查找输出Repeater///privateControl FindRepeater(Control ctrl)

{

Control retCtrl=ctrl.FindControl(repeaterId);if(retCtrl!=null)

{returnretCtrl;

}foreach(Control childCtrlinPage.Controls)

{

retCtrl=childCtrl.FindControl(repeaterId);if(retCtrl!=null)

{returnretCtrl;

}

FindRepeater(retCtrl);

}returnnull;

}//绑定数据源///publicIEnumerable DataSource

{get;set;

}

[Description("当前页")]publicintCurrentPageIndex

{get{

currentPageIndex=HTMLHelper.QueryStringInt("p");if(currentPageIndex<=0)

{

currentPageIndex=1;

}returncurrentPageIndex;

}set{

currentPageIndex=value;

}

}privateintcurrentPageIndex=0;

[Description("分页控件ID")]publicstringRepeaterId

{get{returnrepeaterId;

}set{

repeaterId=value;

}

}privatestringrepeaterId="";

[Description("每页显示记录数")]publicintPageSize

{get{returnpageSize;

}set{

pageSize=value;

}

}privateintpageSize=20;

[Description("总记录数")]publicintRecordCount

{get{returnrecordCount;

}set{

recordCount=value;

}

}privateintrecordCount=0;

[Description("JS分页函数")]publicstringPagerJs

{get{returnpagerJs;

}set{

pagerJs=value;

}

}privatestringpagerJs="pagerObj.Page";

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值