浏览 5736 次
锁定老帖子 主题:grails 查询结果分页 简单实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-04
我用的是groovy1.5和grails1.03,在使用<g:paginate/>标签的时候发现,不支持查询结果的分页显示,所以做了一些小改动,现在终于实现了。 MytagTagLib.groovy,然后将RenderTagLib.groovy的内容全部copy过来,修改paginate方法名为paginate2(以免调用时重叠),在RenderTagLib.groovy中227行的 if(attrs.params) linkParams.putAll(attrs.params) 修改为 if(attrs.params && attrs.params=="form"){ linkParams.putAll(params) } 由于params中有上次查询过的所有条件,所以将它直接传到后台就可以了。好了,这里&& attrs.params=="form"是我自己加上的以区别默认的查询分页,这样页面上也要做一点小改动 <g:paginate2 total="${flash.varName==null?0:flash.varName}" action="search" params="form"/>
好了,参数传递可以解决了,还有一个问题就是total的问题,你应该已经看到了,我在上面用的是flash.varName这个变量来传递total的,来看看我后台处理查询的代码: def search = { def _max = params.max?params.max:10 def results = Kmfile.findAllByFileNameLikeAndFileTypeLike( '%'+params.fileName +'%', '%'+params.fileType +'%', [max:_max,offset:params.offset] ) flash.varName=Kmfile.countByFileNameLikeAndFileTypeLike( "%${params.fileName}%","%${params.fileType}%") //设置显示用select内容 params.ft_inlist = Kmfile.constraints.fileType.inList; render(view:'search',model:[kmfileList:results]) } 好了,这就是我的简单的解决办法,当然默认用get方法传递参数有长度限制,有时间再改进吧!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-05
有需要grails中文帮助文档的可以和我联系。
|
|
返回顶楼 | |
发表时间:2008-09-16
如果我用createCriteria()来做查询的话怎么做分页处理啊。
|
|
返回顶楼 | |
发表时间:2008-09-17
再贴一个用createCriteria()实现的分页:
def search = { def _max = params.max?params.max:10 def _offset = params.offset?params.offset:0 /* def results = Kmfile.findAllByFileNameLikeAndFileTypeLike( '%'+params.fileName +'%', '%'+params.fileType +'%', [max:_max,offset:params.offset] ) */ def c = Kmfile.createCriteria() def results = c { like("fileName", "%$params.fileName%") like("fileType","%$params.fileType%") firstResult(_offset) maxResults(_max) } flash.varName=Kmfile.countByFileNameLikeAndFileTypeLike( "%${params.fileName}%","%${params.fileType}%") params.ft_inlist = Kmfile.constraints.fileType.inList; render(view:'search',model:[kmfileList:results]) } |
|
返回顶楼 | |
发表时间:2009-04-24
请问第22行有什么用?params.ft_inlist = Kmfile.constraints.fileType.inList;
|
|
返回顶楼 | |
发表时间:2009-04-24
不是已经提供个params的属性来添加路径的参数了么?
我对分页带上offset和max才不爽。我把她修改成只带page参数 |
|
返回顶楼 | |