beego分页携带参数

beego分页携带参数

      上篇文章向大家分享如何处理beego模版分页,这一篇跟大家分享如何在分页上携带参数,下面贴出代码。

      一、后端控制器代码我们需要获取用户传过来的参数,然后要把这个参数再返回给用户,用于分页上处理,代码如下:

//获取参数
searchStatus, searchStatusErr := c.GetInt("searchStatus")
if searchStatusErr != nil {
   searchStatus = 0
}
searchAdminStatus, searchAdminStatusErr := c.GetInt("searchAdminStatus")
if searchAdminStatusErr != nil {
   searchAdminStatus = 0
}
searchCommentId, searchCommentIdErr := c.GetInt("searchCommentId")
if searchCommentIdErr != nil {
   searchCommentId = 0
}
searchArticleId, searchArticleIdErr := c.GetInt("searchArticleId")
if searchArticleIdErr != nil {
   searchArticleId = 0
}
//返回用户搜索参数
getInput := make(map[string]interface{})
getInput["SearchStatus"] = searchStatus           //搜索-状态
getInput["SearchAdminStatus"] = searchAdminStatus //搜索-是否管理员
getInput["SearchArticleId"] = searchArticleId     //搜索-文章Id
c.Data["getInput"] = getInput                     //用户搜索参数

      二、前端进行接收参数并赋值在分页上,点击下一页的时候再回传回给后端,从而达到分页的时候,参数不会丢,代码如下:

layui.use('laypage', function () {
    var laypage = layui.laypage;
    var searchTitle = {{.getInput.searchTitle}};
    var searchTypeId = {{.getInput.searchTypeId}};
    var searchLabelId = {{.getInput.searchLabelId}};
    //执行一个laypage实例
    laypage.render({
        elem: 'page' //注意,这里的 page 是 ID,不用加 # 号
        , count: {{.PageCount}}    //获取数据总条数
        , limit: {{.PageLimit}}    //每页限制多少条
        , curr:{{.PagePage}}       //当前页码
        , jump: function (obj, first) {
            //obj包含了当前分页的所有参数,比如:
            console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
            console.log(obj.limit); //得到每页显示的条数
            //首次不执行
            if (!first) {
                window.location.href = "/adminArticleList?page=" + obj.curr + "&searchTitle=" + searchTitle
                        + "&searchTypeId=" + searchTypeId + "&searchLabelId=" + searchLabelId
            }
        }
    });
});

      这样就成功在分页上携带参数进行跳转。

0条评论

发表评论