加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

分享一个grails与jqGrid整合的小代码

发布时间:2020-12-14 17:09:53 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 //服务class JqGridService { /** * @params params 相关参数(jqGrid向服务器端发的参数) * @param queryBlock 取数据的闭包逻辑 * @param dataForm

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

//服务
class JqGridService {
    
    /**
    * @params params 相关参数(jqGrid向服务器端发的参数)
    * @param queryBlock 取数据的闭包逻辑
    * @param dataFormat 取出数据后具体需要组装成json的数据
    */
    def createForJson = { params,queryBlock,dataFormat ->
        def sortIndex = params.sidx ?: 'id'
        def sortOrder  = params.sord ?: 'desc'
        def maxRows = Integer.valueOf(params.rows ?: 10)
        def currentPage = Integer.valueOf(params.page ?: 1) ?: 1
        def rowOffset = currentPage == 1 ? 0 : (currentPage - 1) * maxRows
        params.max = maxRows
        params.offset = rowOffset
        def dataRows = queryBlock.call(params)
        def totalRows = dataRows.totalCount
        def numberOfPages = Math.ceil(totalRows / maxRows)
        def results = dataRows?.collect {
            dataFormat(it)
        }
        [rows: results,currpage: currentPage,totalrecords: totalRows,totalpages: numberOfPages]
    }
}

//控制器调用示例
class MyController{

def jqGridService

       def listJSON = {
        //取数据的闭包逻辑
        def block = { params ->
            Article.createCriteria().list(max: params.max,offset: params.offset) {
            order(params.sidx,params.sord).ignoreCase()
            }
        }
        //取出数据后具体需要组装成json的数据
        def format = { row ->
            [
                    'id':row.id,'nickname':row.nickname,'realname':row.realname,'username':row.username,'type':row.type?.name,'online':row.online ? '是' : '否','dateCreated':row.dateCreated?.format('yyyy-MM-dd HH:mm:ss'),'loginTime':row.loginTime?.format('yyyy-MM-dd HH:mm:ss')
            ]
        }        
        render jqGridService.createForJson(params,block,format) as JSON
    }
}

//页面调用
<script type="text/javascript">
          $(document).ready(function(){
              $('#list').jqGrid(
              {
                jsonReader : {
                root:"rows",page: "currpage",total: "totalpages",records: "totalrecords",repeatitems: false,id: "0"
                },url: '${resource()}/admin/user/listJSON',colNames: ['ID','登录名','昵称','真实姓名','用户类型','注册时间','登录时间','是否在线'],colModel:
                  [
                  {name:'id',editable: false},{name:'username',editable: true},{name:'nickname',{name:'realname',{name:'type',{name:'dateCreated',{name:'loginTime',{name:'online',editable: true}
                  ],sortname: 'id',caption: '用户列表',height: 300,rowNum:10,autowidth: true,scrollOffset: 0,viewrecords: true,pager: '#pager',datatype: 'json'
              }
            );

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读