|
View:
New views
11 Messages
—
Rating Filter:
Alert me
|
|
|
list.gsp with filter and paginationHi,
I am trying to add a search filter (based on the definite guide to Grails) to one of my list.gsp. def search = { if (params?.search == 'clear') { params.filter = '' } redirect (view: list, params: params) } def list = { def items if(!params.max) params.max = 20 if (params?.filter) { def criteria = Item.createCriteria() items = criteria.list(params) { or { ilike ('sku', "%${params.filter}%") ilike ('description', "%${params.filter}%") ilike ('model', "%${params.filter}%") ilike ('primaryVendor', "%${params.filter}%") } } } else items = Item.list (params) render (view: 'list', model: [ itemList: items, filter: params.filter ], params: params) } The problem is that when the user press the pagination, the filter is lost. How can I access the view model from the controller or how can I make the pagination to remember the filter value TIA Pascal --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: list.gsp with filter and paginationAdd the params attribute to the paginate tag.
Cheers, DJ Pascal Demilly wrote: > Hi, > > I am trying to add a search filter (based on the definite guide to Grails) to > one of my list.gsp. > > def search = { > if (params?.search == 'clear') { > params.filter = '' > } > redirect (view: list, params: params) > } > > def list = { > def items > > if(!params.max) params.max = 20 > if (params?.filter) { > def criteria = Item.createCriteria() > items = criteria.list(params) { > or { > ilike ('sku', "%${params.filter}%") > ilike ('description', "%${params.filter}%") > ilike ('model', "%${params.filter}%") > ilike ('primaryVendor', "%${params.filter}%") > } > } > } > else > items = Item.list (params) > > render (view: 'list', model: [ itemList: items, filter: > params.filter ], params: params) > } > > The problem is that when the user press the pagination, the filter is lost. > How can I access the view model from the controller or how can I make the > pagination to remember the filter value > > TIA > > Pascal > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > -- Daniel J. Lauk --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: list.gsp with filter and paginationThanks Daniel. I tried that with sortableColumn as On Friday 15 August 2008 12:55:03 am Daniel J. Lauk wrote: > Add the params attribute to the paginate tag. > > Cheers, > DJ > > Pascal Demilly wrote: > > Hi, > > > > I am trying to add a search filter (based on the definite guide to > > Grails) to one of my list.gsp. > > > > def search = { > > if (params?.search == 'clear') { > > params.filter = '' > > } > > redirect (view: list, params: params) > > } > > > > def list = { > > def items > > > > if(!params.max) params.max = 20 > > if (params?.filter) { > > def criteria = Item.createCriteria() > > items = criteria.list(params) { > > or { > > ilike ('sku', "%${params.filter}%") > > ilike ('description', "%${params.filter}%") > > ilike ('model', "%${params.filter}%") > > ilike ('primaryVendor', "%${params.filter}%") > > } > > } > > } > > else > > items = Item.list (params) > > > > render (view: 'list', model: [ itemList: items, filter: > > params.filter ], params: params) > > } > > > > The problem is that when the user press the pagination, the filter is > > lost. How can I access the view model from the controller or how can I > > make the pagination to remember the filter value > > > > TIA > > > > Pascal > > > > --------------------------------------------------------------------- > > To unsubscribe from this list, please visit: > > > > http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: list.gsp with filter and paginationDon't forget to raise a JIRA issue for this.
|
|
|
Re: list.gsp with filter and paginationI forget to include the controller changes def list = { def items if(!params.max) params.max = 10 if (params?.filter) { def criteria = Item.createCriteria() items = criteria.list(params) { or { ilike ('sku', "%${params.filter}%") ilike ('description', "%${params.filter}%") ilike ('model', "%${params.filter}%") ilike ('primaryVendor', "%${params.filter}%") } } } else { items = Item.list (params) } render (view: 'list', model: [ itemList: items, filter: params.filter ], params: params) } def search = { if (params?.search == 'clear') params.filter = '' redirect (view: list, params: params) } On Friday 15 August 2008 08:06:10 am Ramanathan, Kannan wrote: > Thanks Pascal, I was stuck at sortableColumn. I will try this out. > > -----Original Message----- > From: Pascal Demilly [mailto:list.grails@...] > Sent: Friday, August 15, 2008 10:58 AM > To: user@... > Cc: Ramanathan, Kannan [CMB-IT] > Subject: Re: [grails-user] list.gsp with filter and pagination > > > Here is what I finally end up doing. > > in list.gsp I added at the top: > > <style type="text/css"> > .filterBar { > margin-top:1px; > float:right; > vertical-align: middle; > } > </style> > > and inserted this after <body> > > <span class="filterBar"><g:form controller="item" > action="search"> > <label>Filter: > <g:textField name="filter" value="${filter}"/> > <g:submitButton name="search" value="go"/> > <g:submitButton name="search" value="clear"/> > </label> > </g:form> > </span> > > Then change the sortableColumn and paginate button as follow > > <tr> > <g:sortableColumn property="id" title="Id" params="${params}"/> > <g:sortableColumn property="sku" title="Sku" params="${params}"/> > <g:sortableColumn property="description" title="Description" > params="${params}" /> > </tr> > > <div class="paginateButtons"> > <g:paginate total="${Item.count()}" params="${params}"/> </div> > > however there is a bug in sortableColumn. If you include params you need > to add at line 458 of > grails-1.0.3/src/groovy/org/codehaus/groovy/grails/plugins/web/taglib/Re > nderTagLib.groovy > > linkParams.sort = property > > because sort is already defined in params. If you don't overwrite it in > linkParams then all your column will have the same sort property. > > I haven't found yet the way to make that change sticky. (modifying that > groovy file in place doesn't seem to be seen by the runtime) So in the > meantime I created a new taglib with that change and things are looking > great > > I am now going to try to make it a template > > Hope that helps > > Pascal > > On Friday 15 August 2008 04:57:29 am Ramanathan, Kannan wrote: > > Hi Pascal, > > > > I am exactly looking for such feature in my app. Can you please post > > sample code (especially how to remember the filter value when > > pagination is clicked)? > > > > Thanks for your help. > > > > -----Original Message----- > > From: Pascal Demilly [mailto:list.grails@...] > > Sent: Friday, August 15, 2008 4:42 AM > > To: user@... > > Subject: Re: [grails-user] list.gsp with filter and pagination > > > > (resent because of slippery fingers :-) > > > > Thanks Daniel. I had tried that with sortableColumn when I read the > > code in RenderTagLib that used attr.params like that: > > > > <g:sortableColumn property="description" title="Description" > > params="$params" /> > > > > but got an error > > > > groovy.lang.MissingMethodException: No signature of method: > > java.util.LinkedHashMap.putAll() is applicable for argument types: > > (org.codehaus.groovy.runtime.GStringImpl) values: > > {["max":20, "action":"list", "controller":"item"]} > > at > > home_pdemilly_NetBeansProjects_grails_test_5_grails_app_views_item_lis > > t_ > > gsp.run(home_pdemilly_NetBeansProjects_grails_test_5_grails_app_views_ > > it > > em_list_gsp:47) > > list: ["max":20, "action":"list", "controller":"item"] > > > > How would you pass that attributes then? How do you specify a map in > > GSP? > > > > In the meantime I recreated my own paginate which put the filter value > > > > in the linkParams and that works. Now I am working on the sorting. > > > > Thanks > > > > Pascal > > > > On Friday 15 August 2008 12:55:03 am Daniel J. Lauk wrote: > > > Add the params attribute to the paginate tag. > > > > > > Cheers, > > > DJ > > > > > > Pascal Demilly wrote: > > > > Hi, > > > > > > > > I am trying to add a search filter (based on the definite guide to > > > > Grails) to one of my list.gsp. > > > > > > > > def search = { > > > > if (params?.search == 'clear') { > > > > params.filter = '' > > > > } > > > > redirect (view: list, params: params) > > > > } > > > > > > > > def list = { > > > > def items > > > > > > > > if(!params.max) params.max = 20 > > > > if (params?.filter) { > > > > def criteria = Item.createCriteria() > > > > items = criteria.list(params) { > > > > or { > > > > ilike ('sku', "%${params.filter}%") > > > > ilike ('description', > > "%${params.filter}%") > > > > > ilike ('model', "%${params.filter}%") > > > > ilike ('primaryVendor', > > > > "%${params.filter}%") > > > > > > } > > > > } > > > > } > > > > else > > > > items = Item.list (params) > > > > > > > > render (view: 'list', model: [ itemList: items, filter: > > > > params.filter ], params: params) > > > > } > > > > > > > > The problem is that when the user press the pagination, the filter > > > > > > > > is lost. How can I access the view model from the controller or > > > > how can I make the pagination to remember the filter value > > > > > > > > TIA > > > > > > > > Pascal > > > > > > > > ------------------------------------------------------------------ > > > > -- > > > > - To unsubscribe from this list, please visit: > > > > > > > > http://xircles.codehaus.org/manage_email > > > > --------------------------------------------------------------------- > > To unsubscribe from this list, please visit: > > > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: list.gsp with filter and paginationWill do as soon as I find how to do that. I don't see a link on the main page
to JIRA. Any pointers? On Friday 15 August 2008 08:22:48 am Marcel Overdijk wrote: > Don't forget to raise a JIRA issue for this. > > Pascal DeMilly-4 wrote: > > Here is what I finally end up doing. > > > > in list.gsp I added at the top: > > > > <style type="text/css"> > > .filterBar { > > margin-top:1px; > > float:right; > > vertical-align: middle; > > } > > </style> > > > > and inserted this after <body> > > > > <g:form controller="item" action="search"> > > <label>Filter: > > <g:textField name="filter" value="${filter}"/> > > <g:submitButton name="search" value="go"/> > > <g:submitButton name="search" value="clear"/> > > </label> > > </g:form> > > > > > > Then change the sortableColumn and paginate button as follow > > > > <tr> > > <g:sortableColumn property="id" title="Id" params="${params}"/> > > <g:sortableColumn property="sku" title="Sku" params="${params}"/> > > <g:sortableColumn property="description" title="Description" > > params="${params}" /> > > </tr> > > > > <div class="paginateButtons"> > > <g:paginate total="${Item.count()}" params="${params}"/> > > </div> > > > > however there is a bug in sortableColumn. If you include params you need > > to > > add at line 458 of > > grails-1.0.3/src/groovy/org/codehaus/groovy/grails/plugins/web/taglib/Ren > >derTagLib.groovy > > > > linkParams.sort = property > > > > because sort is already defined in params. If you don't overwrite it in > > linkParams then all your column will have the same sort property. > > > > I haven't found yet the way to make that change sticky. (modifying that > > groovy > > file in place doesn't seem to be seen by the runtime) So in the meantime > > I created a new taglib with that change and things are looking great > > > > I am now going to try to make it a template > > > > Hope that helps > > > > Pascal > > > > On Friday 15 August 2008 04:57:29 am Ramanathan, Kannan wrote: > >> Hi Pascal, > >> > >> I am exactly looking for such feature in my app. Can you please post > >> sample code (especially how to remember the filter value when pagination > >> is clicked)? > >> > >> Thanks for your help. > >> > >> -----Original Message----- > >> From: Pascal Demilly [mailto:list.grails@...] > >> Sent: Friday, August 15, 2008 4:42 AM > >> To: user@... > >> Subject: Re: [grails-user] list.gsp with filter and pagination > >> > >> (resent because of slippery fingers :-) > >> > >> Thanks Daniel. I had tried that with sortableColumn when I read the code > >> in RenderTagLib that used attr.params like that: > >> > >> <g:sortableColumn property="description" title="Description" > >> params="$params" /> > >> > >> but got an error > >> > >> groovy.lang.MissingMethodException: No signature of method: > >> java.util.LinkedHashMap.putAll() is applicable for argument types: > >> (org.codehaus.groovy.runtime.GStringImpl) values: > >> {["max":20, "action":"list", "controller":"item"]} > >> at > >> home_pdemilly_NetBeansProjects_grails_test_5_grails_app_views_item_list_ > >> gsp.run(home_pdemilly_NetBeansProjects_grails_test_5_grails_app_views_it > >> em_list_gsp:47) > >> list: ["max":20, "action":"list", "controller":"item"] > >> > >> How would you pass that attributes then? How do you specify a map in > >> GSP? > >> > >> In the meantime I recreated my own paginate which put the filter value > >> in the linkParams and that works. Now I am working on the sorting. > >> > >> Thanks > >> > >> Pascal > >> > >> On Friday 15 August 2008 12:55:03 am Daniel J. Lauk wrote: > >> > Add the params attribute to the paginate tag. > >> > > >> > Cheers, > >> > DJ > >> > > >> > Pascal Demilly wrote: > >> > > Hi, > >> > > > >> > > I am trying to add a search filter (based on the definite guide to > >> > > Grails) to one of my list.gsp. > >> > > > >> > > def search = { > >> > > if (params?.search == 'clear') { > >> > > params.filter = '' > >> > > } > >> > > redirect (view: list, params: params) > >> > > } > >> > > > >> > > def list = { > >> > > def items > >> > > > >> > > if(!params.max) params.max = 20 > >> > > if (params?.filter) { > >> > > def criteria = Item.createCriteria() > >> > > items = criteria.list(params) { > >> > > or { > >> > > ilike ('sku', "%${params.filter}%") > >> > > ilike ('description', "%${params.filter}%") > >> > > ilike ('model', "%${params.filter}%") > >> > > ilike ('primaryVendor', > >> > >> "%${params.filter}%") > >> > >> > > } > >> > > } > >> > > } > >> > > else > >> > > items = Item.list (params) > >> > > > >> > > render (view: 'list', model: [ itemList: items, filter: > >> > > params.filter ], params: params) > >> > > } > >> > > > >> > > The problem is that when the user press the pagination, the filter > >> > > is lost. How can I access the view model from the controller or how > >> > > can I make the pagination to remember the filter value > >> > > > >> > > TIA > >> > > > >> > > Pascal > >> > > > >> > > -------------------------------------------------------------------- > >> > > - To unsubscribe from this list, please visit: > >> > > > >> > > http://xircles.codehaus.org/manage_email > >> > >> --------------------------------------------------------------------- > >> To unsubscribe from this list, please visit: > >> > >> http://xircles.codehaus.org/manage_email > > > > --------------------------------------------------------------------- > > To unsubscribe from this list, please visit: > > > > http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: list.gsp with filter and paginationhttp://jira.codehaus.org/browse/GRAILS
Cheers, Marcel
|
| Free embeddable forum powered by Nabble | Forum Help |