设为首页 加入收藏

TOP

Beego 学习笔记7:JS分页(一)
2017-12-07 14:22:10 】 浏览:45
Tags:Beego 学习 笔记 JS分页

JS分页

1>     JS分页,业务逻辑

(1)     分页采用的是一个叫jquery.pagination.js的一个jquery插件

(2)     需要jquery的支持,此项目中使用到的是jquery-2.1.1.min.js

(3)     分页需要的参数有:记录总数,每页显示个数,页码

(4)     添加搜索的条件,作为查询使用

2>     编写新的model,命名为data.go.其代码如下:

package models 

import (
	"fmt"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
)

// 用户
type User struct{
	Id              int64    `orm:"auto"`
	Name            string   `orm:"size(100)"`
	Nickname        string   `orm:"size(100)"`
    Pwd             string   `orm:"size(100)"`
    Email           string   `orm:"size(100)"`
    Sex             string   `orm:"size(2)"`
	Roleid          string   `orm:"size(100)"`
	Status          int64    
	Phone           string   `orm:"size(16)"`
}

//根据用户数据总个数
func GetRecordNum(search string) int64 {
	
	o := orm.NewOrm()
	qs := o.QueryTable("user")
	if search !=""{
		qs=qs.Filter("Name",search)
	}
	var us []User
	num, err :=  qs.All(&us)
	if err == nil {
		return num
	}else{
		return 0
	}	
}
func SearchDataList(pagesize,pageno int,search string) (users []User) {
	o := orm.NewOrm()
	qs := o.QueryTable("user")
	if search !=""{
		qs=qs.Filter("Name",search)
	}
	var us []User
	cnt, err :=  qs.Limit(pagesize, (pageno-1)*pagesize).All(&us)
	if err == nil {
		fmt.Println("count", cnt)
	}
	return us
}
//初始化模型
func init() {
	// 需要在init中注册定义的model
	orm.RegisterModel(new(User))
}

  

3>     控制器user.go,其代码如下:

package controllers

import (
	"secondweb/models"
	"fmt"
	"github.com/astaxie/beego"
)

type UserController struct {
	beego.Controller
}

func (c *UserController) Get() {
	
	c.TplName = "list.html"
}
func (c *UserController) Post() {
	pageno,err:=c.GetInt("pageno")
	if err!=nil{
       fmt.Println(err)
	}
	search:=c.GetString("search")
	userList:=models.SearchDataList(3,pageno,search)
	listnum:=models.GetRecordNum(search)
	c.Data["json"]=map[string]interface{}{"Count":listnum,"PageSize":3,"Page":pageno,"DataList":userList};
	c.ServeJSON();
}

type YonghuController struct {
	beego.Controller
}
func (c *YonghuController) Post() {
	pageno,err:=c.GetInt("pageno")
	if err!=nil{
       fmt.Println(err)
	}
	search:=c.GetString("search")
	userList:=models.SearchDataList(3,pageno,search)
	listnum:=models.GetRecordNum(search)
	c.Data["json"]=map[string]interface{}{"Count":listnum,"PageSize":3,"Page":pageno,"DataList":userList};
	c.ServeJSON();
}

  

4>     路由配置如下:

package routers

import (
	"secondweb/controllers"
	"github.com/astaxie/beego"
)

func init() {
	beego.Router("/", &controllers.MainController{})
	beego.Router("/Home/PageData", &controllers.UserController{})
	beego.Router("/Home/PageNextData", &controllers.YonghuController{})
}

  

5> &nb

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Beego学习笔记5:MVC-VC 下一篇Gotorch - 多机定时任务管理系统

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目