我有一個表,有一系列事件, 我的類的名字是Entry。Grails:動態地過濾Grails表中的數據
這裏是我的表的圖片
是西班牙語,但基本是相同的,所以它不應該是一個問題。 (過濾器HTML代碼還沒有如此混亂,但它的工作原理)
這裏是我在查找條目時得到的結果。
http://i45.tinypic.com/r1iexv.jpg
現在我的問題是,我需要顯示的結果/過濾成從PIC1同桌,所以這將是基本上像應用濾波器表更新。
如果你需要更多的信息,這裏是我的老問題的鏈接。感謝proflux!
I have a bunch of data and I need a data filter using Grails
大多數的搜索代碼是存在的,
任何幫助將不勝感激!
UPDATE:
我有過濾日期的問題,但...我有兩個日期... 一個是事件將要發生的日期,另一種是LASTUPDATED這我認爲這是上次修改Event時Grails的關鍵字。任何有關過濾日期的幫助將不勝感激。
我需要從今天的日期開始顯示第一張桌子上的所有內容。如果我想從過去找到某些東西,我應該可以使用過濾器來找到它。
有關如何做到這一點的任何想法?
UPDATE:
因此,這裏是我的list.gsp
http://i49.tinypic.com/291ksy1.png
,這裏是我的searchResults.gsp施加單詞 「魯塔」
所以過濾器基本上一切看起來不錯,但日期過濾器不起作用。
這裏是在控制器未過濾的日期
def searchResults = {
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.proyectoRuta) {
ilike("proyectoRuta","%${params.proyectoRuta}%")
}
}
if(params?.day) {
eq("fechaCambio", params.day)
}
render(view:'searchResults', model:['results':results])
}
是過濾單詞而不是日期
proyectoRuta
。將標題和fechaCambio
將在示出的日期的代碼第一列。我還沒有試圖過濾lastUpdated日期。
UPDATE:
好了,所以這是我的控制器:由於是大量的代碼,我將只發布重要DEFS
def search = {
render(view:'search')
}
def searchResults = {
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
if(params?.fechaCambioD && params?.fechaCambioH) {
between("fechaCambio", params.fechaCambioD, params.fechaCambioH)
}
if(params?.lastUpdatedD && params?.lastUpdatedH) {
between("lastUpdated", params.lastUpdatedD, params.lastUpdatedH)
}
if(params?.proyectoRutaN) {
ilike("proyectoRuta","%${params.proyectoRutaN}%")
}
}
render(view:'searchResults', model:['results':results, 'proyectoRutaN':params?.proyectoRutaN, 'fechaCambioD':params?.fechaCambioD, 'fechaCambioH':params?.fechaCambioH, 'lastUpdatedD':params?.lastUpdatedD, 'lastUpdatedH':params?.lastUpdatedH])
}
}
這裏是searchResults.gsp
<tbody>
<g:each in="${results}">
<td><g:formatDate format="dd-MMMM-yyyy" date="${it.fechaCambio}" /></td>
<td><b>${it.proyectoRuta}</b></td>
<td>${it.summary}</td>
<td><g:formatDate format="dd-MMM-yyyy HH:mm z" date="${it.lastUpdated}" /></td>
<td>
<g:form>
<g:hiddenField name="id" value="${it?.id}" />
<span class="simple"><g:actionSubmit class="editar" action="edit" value="${message(code: 'default.button.editar.label', default: ' ')}" /></span>
<span class="simple"><g:actionSubmit class="eliminar" action="delete" value="${message(code: 'default.button.eliminar.label', default: ' ')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Esta seguro que desea Eliminar?')}');" /></span>
</g:form>
</td>
</tr>
</g:each>
</tbody>
我不知道這是一個很好的選擇...我給searchResults.gsp相同的HTML和CSS,我給list.gsp 。所以我想我需要在list.gsp上工作,以顯示從今天開始過濾日期的「結果」。這樣做有什麼意義嗎? – randomizertech 2010-06-24 13:57:39
lastUpdated是Grails中的一個特殊變量,但它可能實際上只是你想要的;每次修改和保存對象時,它都會將該值更新爲當前時間。 – proflux 2010-06-24 14:28:44
看起來您剛剛開始使用Grails,希望能提供幫助,但我不想爲您提供幫助,以至於您無法爲自己學習。考慮上面的屏幕截圖(是list.gsp?),並將其與我提供的gsp進行比較。兩者都有頂部的搜索表單和底部的結果。我可以告訴你,在來自另一個問題的信息之間,你在這裏發佈的內容以及我在這裏發佈的信息,都可以讓你的應用完成你想要的任務。你只需要弄清楚如何把它放在一起,讓我知道如果你卡住了,我會盡力幫助你解決問題。 – proflux 2010-06-24 14:38:08