核心提示:models/page.gopackage modelsimport (//fmt//db dlnu-beego/initialmath)//分页方法,根据传递过来的页数,每页数,总数,返回分页的内容...
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>