前端分页实现

最近做de一个项目,整个页面的数据更新要纯ajax实现,没办法,连分页都得由我来写了,基本思路还是像后台那样实现分页,后台实现分页其实也就是用后台的程序来处理那段分页的模版,于是我想

到了用js自己来解析那段类似的分页模版,正好以前自己也做了js模版引擎(http://www.cnblogs.com/hust/archive/2011/04/28/2032265.html),刚好派上用场,

下面是分页的模版:

 {{if(data.totalpage>1){ }}
                {{ if(data.curpage!=1){}}
           <li><a href="javascript:void(0)" class="previous_page" onclick="Ybole.page.previous()">上一页</a></li>
          {{  }  }}
          {{for(var a=parseInt((data.curpage-1)/Ybole.page.perpage)*Ybole.page.perpage,i=a+1;i<=Math.min(a+Ybole.page.perpage,data.totalpage);i++){}}
         <li>
         <a href="javascript:void(0)" onclick="Ybole.page.goto({{=i}})" {{ if(data.curpage==i){}} class="hover" {{ } }}>{{=i}}</a>
         </li>
          {{  } }} 
         {{ if(Math.ceil(data.totalpage/Ybole.page.perpage)!= Math.ceil(data.curpage/Ybole.page.perpage)){  }}
        <li>
         <a href="javascript:void(0)" class="nopage">...</a>
         </li>
         {{  }  }}
         {{ if(data.curpage!=data.totalpage){  }}
        <li ><a href="javascript:void(0)" class="next_page" onclick="Ybole.page.next()">下一页</a></li>
         {{  }  }}
        {{   }  }}

一下是模版处理代码

var pageTpl=Template({
            tpl:$('#pagetpl')[0].text,
         data:{curpage:1,totalpage:1}
         });  

Ybole.page={
					   	curpage:1,
						totalpage:1,
						perpage:10,//每页显示的条数
						previous:function(){
						  this.goto(--this.curpage);
						},
						next:function(){
						  this.goto(++this.curpage);
						},
						goto:function(n){
						  this.curpage=n;
						  dosomething();
						  $('#page').html(pageTpl.render({curpage:n}));
						}
				    }
posted @ 2011-06-25 23:46  淘小杰  阅读(3284)  评论(0编辑  收藏  举报