Я использовал регулярную datePicker от grails, но я решил, что было проще использовать textField с календарем рядом с ним, и мне было рекомендовано использовать Grails-UI.grails - как заставить фильтр распознавать значения с datePicker с помощью графического плагина Grails?
Моя проблема в том, что теперь, когда я нажимаю для применения фильтров, они не работают. Почему-то их не узнают.
Любая помощь была бы принята с благодарностью.
Вот код для контроллера:
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])
А вот кусок кода в search.gsp, где графический интерфейс: Datepicker объявлен
<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 выпадающих ящика для дневного месяца и года, и идея состоит в том, чтобы использовать только один текстовый экран с календарем рядом с ним, чтобы помочь ему выглядеть лучше.
Заранее спасибо
UPDATE
Вот код, я имею в 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])
Так что я хотел бы знать, если я мог бы сделать то же самое для сортировки вещи, которые были отфильтрованы. Поскольку теперь, когда я нажимаю на заголовок каждого столбца, после его фильтрации он заказывает каждый отдельный элемент из списка. Если я делаю это, когда я создаю новые записи, он заказывает их с сегодняшнего дня (только те вещи, которые вы видите), но когда я применяю фильтр, а затем заказываю сортировку каждого отдельного элемента в списке, а не только то, что он показывает ,
Я думаю, это звучит немного запутанно, надеюсь, вы сможете помочь.
Заранее благодарен!
Я думаю, что я собираюсь использовать jQuery-UI, есть много информации в Интернете и по какой-то причине кажется, что это проще. – randomizertech
По какой-то причине календарь не открывается, когда я нажимаю поле ввода -__- «Как объявить календарь в контроллере?» На странице плагина Grails говорится, что нужно поставить def testDatePicker = {}, но это не имеет значения если я ничего не делаю: S – randomizertech
вы установили плагин gui? установите класс css для тела yui-skin-sam? – proflux