控制器:
func (s *AdminPoolsController) Get(){ o := orm.NewOrm() qs := o.QueryTable("Pools") count, _ := qs.Count() pagesize := 5 //总页数 pageCount := int(math.Ceil((float64(count) / float64(pagesize)))) // 获取当前页码 page, _ := s.GetInt("page",1) if(page<0){ page=utils.Max(page,1); } if(page>pageCount){ page=utils.Min(page,pageCount); } pagePre:=utils.Min(page-1,page); pageNext:=utils.Max(page+1,page); //存储分页数据的切片 articles := new([]models.Pools) //获取分页数据 qs.Limit(pagesize, pagesize*(page - 1)).All(articles) //beego.Info(*articles) s.Data["articles"] = *articles s.Data["count"] = count s.Data["pageCount"] = pageCount s.Data["pagePre"] = pagePre s.Data["page"] = page s.Data["pageNext"] = pageNext s.TplName = "admin/pools.html" }
模板:
<table class="table table_clear"> <tbody> <tr> <td> <div> <a href="/admin/pools/list?page=1">首页</a> <a href="/admin/pools/list?page={{.pagePre}}">上一页</a> <a href="/admin/pools/list?page={{.pageNext}}">下一页</a> <a href="/admin/pools/list?page={{.pageCount}}">尾页</a> <span style="margin-left: 10px;">第{{.pageNum}}/{{.pageCount}}页,共{{.count}}条</span> </div> </td> </tr> </tbody> </table>