beego 分页

models/page.go

package models

import (
    //"fmt"
    //db "dlnu-beego/initial"
    "math"
)

//分页方法,根据传递过来的页数,每页数,总数,返回分页的内容 7个页数 前 1,2,3,4,5 后 的格式返回,小于5页返回具体页数
func Paginator(page, prepage int, nums int64) map[string]interface{} {

    var firstpage int //前一页地址
    var lastpage int//后一页地址
    //根据nums总数,和prepage每页数量 生成分页总数
    totalpages := int(math.Ceil(float64(nums) / float64(prepage))) //page总数
    if page > totalpages {
        page = totalpages
        }
    if page <= 0 {
        page = 1
        }
    var pages []int
    switch {
        case page >= totalpages-5 && totalpages > 5: //最后5页
        start := totalpages - 5 + 1
        firstpage = page - 1
        lastpage = int(math.Min(float64(totalpages), float64(page+1)))
        pages = make([]int, 5)
        for i, _ := range pages {
            pages[i] = start + i
            }
        case page >= 3 && totalpages > 5:
        start := page - 3 + 1
        pages = make([]int, 5)
        firstpage = page - 3
        for i, _ := range pages {
            pages[i] = start + i
            }
        firstpage = page - 1
        lastpage = page + 1
        default:
        pages = make([]int, int(math.Min(5, float64(totalpages))))
        for i, _ := range pages {
            pages[i] = i + 1
            }
        firstpage = int(math.Max(float64(1), float64(page-1)))
        lastpage = page + 1
        }
    paginatorMap := make(map[string]interface{})
    paginatorMap["pages"] = pages
    paginatorMap["totalpages"] = totalpages
    paginatorMap["firstpage"] = firstpage
    paginatorMap["lastpage"] = lastpage
    paginatorMap["currpage"] = page
    return paginatorMap
}

models/company.go

//公司分页数据列表
func Company_sum(pagesize int,pageno int) (err error,com_w_six []Company){
    com_w_six=make([]Company,0)
    err =db.Engine.Desc("co_id").Limit(pagesize,(pageno-1)*pagesize).Find(&com_w_six)
    fmt.Println("----------comcount11111------------")
    //fmt.Println(com_w_six)
    //fmt.Println(reflect.TypeOf(tot))
    fmt.Println("----------comcount22222------------")
    //total=tot
    return
}

controllers/teacher.go

func (c *CompanyYController) Get()  {
    //得到当前分页html的数据
    pa,err:=c.GetInt("page")
    if err !=nil{
        fmt.Println(err)
    }
    //每页显示的记录的个数
    pre_page:=10
    //数据总数量
    totals:=CompanyCount()
    res:=Paginator(pa,pre_page,totals)
    //得到分页的数据
    _,comlist:=Company_sum(pre_page,pa)
    fmt.Println(res)
    c.Data["paginator"]=res //分页的数据
    c.Data["totals"]=totals //分页的数据
    c.Data["datas"]=comlist //列表数据

    c.TplName="teacher/company_yi.html"
}

views/list.html

<div class="panel-body">
    <div class="w20 pull-left"> 企业名字</div>
    <div class="w15 pull-left">行业</div>
    <div class="w15 pull-left">规模/性质</div>
    <div class="w15 pull-left text-center">时间</div>
    <div class="w15 pull-left text-center"><span class="text-green-main">状态</span></div>
    <div class="w15 pull-left text-center"><span class="text-green-main">编辑</span></div>
</div>
{{ range $index, $item := .datas}}
<div class="panel-body">
    <div class="w20 pull-left">
        <a href="/teacher/company_content/{{ $item.CoId }}">{{ $item.CoName }}</a>
    </div>
    <div class="w15 pull-left">{{ $item.CoTrade }}</div>
    <div class="w15 pull-left">{{ $item.CoProperty }}</div>
    <div class="w15 pull-left text-center">{{ $item.CoCreateTime }}</div>
    <div class="w15 pull-left text-center"><span class="text-green-main">{{ $item.CoReview }}</span></div>
    <input type="button" class="w15 pull-left text-center delete " style="background:#fff;border:1px solid #fff;color:#337ab7"  name="{{ $item.CoId }}" value="删除">

</div>
{{end}}
<nav aria-label="Page navigation ">
    <ul class="pagination pull-right">
        <li ><a href="/teacher/company_y?page={{.paginator.firstpage}}">«</a></li>
        {{range $index,$page := .paginator.pages}}
        <li ><a href="/teacher/company_y?page={{$page}}" {{if eq $.paginator.currpage $page }} style="background-color: #005197;color: #fff;"{{end}}>{{$page}}</a></li>
        {{end}}
        <li><a href="/teacher/company_y?page={{.paginator.lastpage}}">»</a></li>
        <li><span style="color: black">页数 ( {{ .paginator.currpage }}/{{.paginator.totalpages}} )</span></li>
    </ul>
</nav>

猜你喜欢

转载自blog.csdn.net/a976134036/article/details/78938577