私は grails の通常の datePicker を使用していましたが、横にカレンダーがある textField を使用する方が簡単であると判断し、Grails-UI を使用するように勧められました。
私の問題は、クリックしてフィルターを適用しても機能しないことです。どういうわけか、それらは認識されていません。
どんな助けでも大歓迎です。
コントローラーのコードは次のとおりです。
def searchResults = {
def fromCal
if(params?.lastUpdatedD) {
fromCal = Calendar.getInstance()
fromCal.setTime(params?.lastUpdatedD)
fromCal.set(Calendar.HOUR_OF_DAY,0)
fromCal.set(Calendar.MINUTE,0)
fromCal.set(Calendar.SECOND,0)
fromCal.set(Calendar.MILLISECOND,0)
}
def toCal
if(params?.lastUpdatedH) {
toCal = Calendar.getInstance()
toCal.setTime(params?.lastUpdatedH)
toCal.set(Calendar.HOUR_OF_DAY,23)
toCal.set(Calendar.MINUTE,59)
toCal.set(Calendar.SECOND,59)
toCal.set(Calendar.MILLISECOND,999)
}
def entryCriteria = Entry.createCriteria()
def results = entryCriteria.list {
and{if(params?.fechaCambioD && params?.fechaCambioH) {
between("fechaCambio", params.fechaCambioD, params.fechaCambioH)
}
if(params?.lastUpdatedD && params?.lastUpdatedH) {
between("lastUpdated", fromCal.getTime(), toCal.getTime())
}
if(params?.proyectoRutaN) {
ilike("proyectoRuta","%${params.proyectoRutaN}%")
}
}
}
render(view:'searchResults', model:['results':results, 'proyectoRutaN':params?.proyectoRutaN, 'fechaCambioD':params?.fechaCambioD, 'fechaCambioH':params?.fechaCambioH, 'lastUpdatedD':'', 'lastUpdatedH':params?.lastUpdatedH])
そして、これは gui:datePicker が宣言されている search.gsp のコードの一部です。
<gui:datePicker name="fechaCambioH" value="${params?.fechaCambioH}" formatString="dd/MMM/yyyy"/>
それらを変更すると<<gui:datePicker name="fechaCambioH" value="${params?.fechaCambioH}" precision="day" default="none" noSelection="['':'']" years="${2010..2015}"/>/>
、完全に正常に機能しますが、月と年の3つのドロップダウンボックスが表示されます。アイデアは、見栄えを良くするために、横にカレンダーのある1つのテキストフィールドのみを使用することです.
前もって感謝します
アップデート
これがlist.gspにあるコードです
def list = {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
[entryInstanceList: Entry.list(params), entryInstanceTotal: Entry.count()]
def today = Calendar.getInstance()
today.setTime(new Date())
today.set(Calendar.HOUR_OF_DAY, 0)
today.set(Calendar.MINUTE, 0)
today.set(Calendar.SECOND, 0)
today.set(Calendar.MILLISECOND, 0)
def results = Entry.findAllByFechaCambioGreaterThanEquals(today.getTime())
render(view:'list', model:['entryInstanceList':results])
だから、フィルタリングされたものを並べ替えるために同じことができるかどうか知りたかった. 各列のタイトルをクリックすると、フィルター処理された後、リストからすべての項目が並べ替えられるようになりました。新しいエントリを作成するたびにそれを行うと、今日からそれらが並べ替えられますが (表示されているもののみ)、フィルタを適用してから並べ替えると、表示されているものだけでなく、リストのすべての項目が並べ替えられます.
少しややこしいと思いますが、お役に立てれば幸いです。
前もって感謝します!