分享一个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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |