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