2011-08-16 5 views
0

GSPGrailsのフィルタ(findAllByName)

<g:form controller="sort" action="filteren"> 
      <g:select from="${functionremote.Sort.list() }" 
      onchange="this.form.submit()" 
      value="${flash.filter}" 
      name="filter" 
      optionKey="id" 
      noSelection="['':'selecteer']"/> 
     </g:form> 

フィルタと間違って何コントローラ

def filteren={ 
    def filterlist 
    flash.filter=params.filter 

    if(params.filter!=''){ 
     filterlist=Sort.findAllByName{params.filter) 
    }else 
     filterlist=Sort.list() 

    params.max = Math.min(params.max ? params.int('max') : 10, 100) 

    render(view:'list', model:[sortInstanceList:filterlist, sortInstanceTotal:filterlist.count()]) 
} 

filterlist=Sort.findAllByName{params.filter) 

私はこれを行うとき:

filterlist=Sort.findAllByName{"some string") 

それはpefectly

おかげ

+0

:ようになり、クエリを変更しますか? – Gregg

+1

オープニングに中括弧を使用していることに気付きました(例:... findAllByName(...)...の代わりにfindAllByName {...)...)かっこを試してみませんか? – callie16

答えて

0

私は名前の代わりにIDとなりますparams.filter以来、働いていないことを、思いを作品あなたのoptionKeyの値はIDなので、あなたがのprintlnのparamsを行う場合は、あなたがそれでフィルタを参照してくださいか

filterlist = Sort.findAllById(params.filter) 

またはこの場合

filterlist = Sort.get(params.filter) 
+0

ありがとう – cobe

関連する問題