js分页(非无刷新)

每当以前看到网上类似的分页感觉很新奇很好看,于是自己也模仿做了一个(其实是项目中要用的,嘿嘿)。。。。

     其实功能做起来确实很简单,主要思想就是根据当前总页数,在js中输出类似<a href='xxx/xxx.aspx?page=current&condition=condition'>current</a>的标签,

以下是css代码段,用于设置分页的样式:

代码
 
    
< style type = " text/css " >
#setpage a:link, #setpage a:visited, #setpage a:hover, .current, #info
{
border: 1px solid #DDD;
background: #F2F2F2;
display: inline
- block;
margin: 1px;
text
- decoration: none;
font
- size: 12px;
width: 15px;
height: 15px;
text
- align: center;
line
- height: 15px;
color: #AAA;
padding: 1px 2px;
}
#setpage a:hover
{
border: 1px solid #E5E5E5;
background: #F9F9F9;
}
.current
{
border: 1px solid #83E7E4;
background: #FFFFDF;
margin: 1px;
color: #27CBC7;
}
#info
{
width: auto;
}
</ style >

 

 

 

JS部分,其主要是用于输出HTML中的A标签,并增加参数。
代码
 
    
< script type = " text/javascript " >
var totalpage, pagesize, cpage, count, curcount, outstr, pageurl;
// 初始化
cpage = 1 ;
// 总页数

totalpage
= 0 ;
// 显示多少分页
pagesize = 10 ;
// 输出的HTML标签
outstr = "" ; // 页面定位
function gotopage(target) {
cpage
= target; // 把页面计数定位到第几页
setpage();
} function setpage() {
/// 页面分页的URL设置
totalpage = parseInt(document.getElementById( " <%=hf_Page.ClientID %> " ).value); // 获取肖前页索引
cpage = parseInt(document.getElementById( " <%=hf_Current.ClientID %> " ).value); // 页面跳转URL
pageurl = document.getElementById( " <%=hf_Condition.ClientID %> " ).value; // .replace("page", cpage);
if (totalpage == 0 ) document.getElementById( " setpage " ).style.display = " none " ;
else {
if (totalpage <= 10 ) { // 总页数小于十页
for (count = 1 ; count <= totalpage; count ++ ) {
if (count != cpage) {
outstr
= outstr + " <a href='<%=Request.ApplicationPath %>/ " + pageurl.replace( " page " , count) + " ' οnclick='gotopage( " + count + " )'> " + count + " </a> " ;
}
else {
outstr
= outstr + " <span class='current'> " + count + " </span> " ;
}
}
}
if (totalpage > 10 ) { // 总页数大于十页
if (parseInt((cpage - 1 ) / 10 ) == 0 ) {
for (count = 1 ; count <= 10 ; count ++ ) {
if (count != cpage) {
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , count) + " ' οnclick='gotopage( " + count + " )'> " + count + " </a> " ;
}
else {
outstr
= outstr + " <span class='current'> " + count + " </span> " ;
}
}
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , count) + " 'style='width:50px;' οnclick='gotopage( " + count + " )'> 下一页 </a> " ;
}
else if (parseInt((cpage - 1 ) / 10 ) == parseInt(totalpage / 10 )) {
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , (parseInt((cpage - 1 ) / 10 ) * 10 )) + " ' οnclick='gotopage( " + (parseInt((cpage - 1 ) / 10 ) * 10 ) + " )'>previous</a> " ;
for (count = parseInt(totalpage / 10 ) * 10 + 1 ; count <= totalpage; count ++ ) {
if (count != cpage) { outstr = outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , count) + " ' οnclick='gotopage( " + count + " )'> " + count + " </a> " ; } else {
outstr
= outstr + " <span class='current'> " + count + " </span> " ;
}
}
}
else {
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , (parseInt(cpage / 10 , 0 )) * 10 ) + " ' οnclick='gotopage( " + (parseInt((cpage - 1 ) / 10 ) * 10 ) + " )'>previous</a> " ;
for (count = parseInt((cpage - 1 ) / 10 ) * 10 + 1 ; count <= parseInt((cpage - 1 ) / 10 ) * 10 + 10 ; count ++ ) {
if (count != cpage) {
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , count) + " ' οnclick='gotopage( " + count + " )'> " + count + " </a> " ;
}
else {
outstr
= outstr + " <span class='current'> " + count + " </span> " ;
}
}
outstr
= outstr + " <a href='<%=Request.ApplicationPath%>/ " + pageurl.replace( " page " , count) + " ' style='width:50px;' οnclick='gotopage( " + count + " )'> 下一页 </a> " ;
}
}
document.getElementById(
" setpage " ).innerHTML = " <div id='setpage'><span id='info'>共 " + totalpage + " 页|第 " + cpage + " 页<\/span> " + outstr + " <\/div> " ; outstr = "" ;
}
} setpage();
// 调用分页
</ script >

 

页面HTML部分:

 

代码
 
   
< asp:HiddenField ID = " hf_Page " runat = " server " Value = " 0 " />
< asp:HiddenField ID = " hf_Condition " runat = " server " Value = "" />
< asp:HiddenField ID = " hf_Current " runat = " server " Value = " 1 " />
< div id = " setpage " style = " margin-top: 20px; " >
这里用来放置分页的页码序呈
</ div >

 

 

 

后台代码部分:

 

代码
 
   
// 查询条件
private string condition
{
get
{
if (ViewState[ " Condi " ] == null )
return "" ;
else return ViewState[ " Condi " ].ToString();
}
}

protected void Page_Load( object sender, EventArgs e)
{
if ( ! IsPostBack)
{
int current = 0 ; if (Request.QueryString[ " page " ] != null ) current = Convert.ToInt32(Request.QueryString[ " page " ]); else current = 1 ;
LoadContents(current);
}
}
private void LoadContents( int current)
{
this .hf_Condition.Value = string .Format( " FindFood.aspx?p=page&type={0} " , " 360102 " );
ViewState[
" Condi " ] = " AND areaId='360102' " ;
// 获得展示信息列表,拼接成HTML输出到前台的div中

string content = RestaurantManager.Instance().RestaurantList(current, " view_TaxisRestaurantListByTime " , condition);
// 获得总共的数据行数
int counter = RestaurantManager.Instance().RestaurantCount( " areaId='360102' " );
ViewState[
" Counter " ] = counter; // 根据每页显示的数据条数进行计算一共需要多少页
if (counter / 20 == 0 )
this .hf_Page.Value = (counter / 20 ).ToString();
else
this .hf_Page.Value = (counter / 20 + 1 ).ToString(); // 标识当前页索引
this .hf_Current.Value = current.ToString();
if ( string .IsNullOrEmpty(content))
this .contents.InnerHtml = " <font size=\ " 12px;\ " ><b>没有要显示的数据</b></font> " ;
else this .contents.InnerHtml = content;
}

 

 

 

 

转载于:https://www.cnblogs.com/netDream/archive/2010/11/12/js_pager.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值