models/page.go
package models
import (
"math"
)
func Paginator(page, prepage int, nums int64) map[string]interface{} {
var firstpage int
var lastpage int
totalpages := int(math.Ceil(float64(nums) / float64(prepage)))
if page > totalpages {
page = totalpages
}
if page <= 0 {
page = 1
}
var pages []int
switch {
case page >= totalpages-5 && totalpages > 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() {
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>