You can do something like this:

class Paginator(DIV):
     items_per_page = 10
     records = 100
     def limitby(self):
          from gluon import current
          page = self.page=int(current.request.vars.page or 0)
          return (self.items_per_page*page,self.items_per_page*(page
+1))
     def xml(self):
          from gluon import current
          pages,rem = divmod(self.records,self.items_per_page)
          if rem: pages+=1
          if self.page>0:
 
self.append(A('first',_href=URL(args=current.request.args,vars=dict(page=0))))
          if self.page>1:
 
self.append(A('prev',_href=URL(args=current.request.args,vars=dict(page=self.page-1))))
          if self.page<pages-2:
 
self.append(A('next',_href=URL(args=current.request.args,vars=dict(page=self.page
+1))))
          if self.page<pages-1:
 
self.append(A('last',_href=URL(args=current.request.args,vars=dict(page=pages-1))))
          return DIV.xml(self)

def index():
    p=Paginator()
    p.items_per_page=5
    p.records=db(query).count()
    rows = db(query).select(limitby=p.limitby())
    return dict(rows=rows, paginator=p)

{{extend 'layout.html'}}
{{=SQLTABLE(rows)}}
{{=paginator}}

customize the xml function above to make it look better!


On Aug 6, 3:00 am, Web2Py Freak <halna...@gardeniatelco.com> wrote:
>  Hey guys ,
>
> Anyone Used Pagination before  , i have a table named "blogpost" and i
> want it to view every 10 post in a page  , how can i do that ??

Reply via email to