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

发布时间:2020-01-12 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了分享一个grails与jqGrid整合的小代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
//服务
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'
              }
            );

大佬总结

以上是大佬教程为你收集整理的分享一个grails与jqGrid整合的小代码全部内容,希望文章能够帮你解决分享一个grails与jqGrid整合的小代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。