随笔-112  评论-73  文章-0  trackbacks-0

Grails_filterpane插件使用


filterpane 插件可以根据Domain Class 生成查询界面并从数据库中进行查询,使用方面比较简单。

通过命令 grails install-plugins filterpane 进行安装,

在list.gsp面页中头面加入

<filterpane:filterPaneIncludes />

引入资源

<filterpane:currentCriteria domainBean="AddressList" removeImgDir="images" removeImgFile="bullet_delete.png" />

显示当前查询条件,domainBean 需要加入包名.

<g:paginate total="${addressListInstanceTotal}" params="${filterParams?filterParams:params}"/>

修改grails 生成的页面,支持查询结果集进行翻页.在没有使用filterpane时也需要将参数传递到后台,默认不支持查询结果集翻页。

<g:paginate total="${addressListInstanceTotal}" params="${params}"/> <filterpane:filterButton textKey="fp.tag.filterButton.text" appliedTextKey="fp.tag.filterButton.appliedText" text="Filter Me" appliedText="Change Filter" />

显示查询按钮,textKey与appliedTextKey是在资源文件messages-filterpane.properties中指定的,完全支持国际化。

<filterpane:filterPane domainBean="cn.xiangyunsoft.jltv.AddressList" additionalProperties="identifier" titleKey="fp.tag.filterPane.titleText" /> <filterpane:filterPane domainBean="AddressList" additionalProperties="identifier" titleKey="fp.tag.filterPane.titleText" />

生成查询条件界面.

<filterpane:filterPane domainBean="AddressList" additionalProperties="identifier" filterPropertyValues="{[createDate:[precision:'day',dateFormat:'yyyy-MM-dd'],expDate:[precision:'day']]}" filterProperties="number,networkType,networkName,channel,createDate,expDate,psnName,psnTel,psnMtel,state" titleKey="fp.tag.filterPane.titleText" />

filterProperties 指定查询界面显示的条件,filterPropertyValues字段值的格式与默认值。

在Controller中加入下面代码:

def filterService 
def filter = {if(!params.max) params.max = 10 render( view:'list', model:[ addressListInstanceList: filterService.filter( params, AddressList ), addressListInstanceTotal: filterService.count( params, AddressList ), filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params), params:params ] )def filter = { if(!params.max) params.max = 10 render( view:'list', model:[ addressListInstanceList: filterService.filter( params, AddressList ), addressListInstanceTotal: filterService.count( params, AddressList ), filterParams: com.zeddware.grails.plugins.filterpane.FilterUtils.extractFilterParams(params), params:params ] ) }     }

posted on 2010-03-12 17:10 Libo 阅读(366) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: