У меня есть приложение Grails.
Здесь у меня есть страница, которая принимает данные и в соответствии с данными. переходит к действию list, запускает sql, заполняет данные в объект reconciliationInstance и отображает их в list.gsp.
В моем list.gsp у меня есть
<g:sortableColumn property="access"
title="${message(code: 'reconciliationInstance.access.label', default: 'Access')}"
style="width: 10px" defaultOrder="desc"/>
Однако, когда я нажимаю на заголовок «Сумма», он снова возвращает меня к действию списка.
У меня около 15 столбцов на странице, и я хочу иметь сортировку для всех из них.
Я что-то здесь упускаю?
Чтобы исправить эту проблему, я написал следующий код.
Перенаправлен на действия сортировки. Но здесь, на мой взгляд, что-то не так.
def sort = {
if (!params.sort) params.sort = "title"
if (!params.order) params.order = "asc"
def reconciliationInstanceList = new ArrayList<Reconciliation>()
reconciliationInstanceList=session["reconciliationInstanceList"]
order(params.sort, params.order)
[reconciliationInstanceList: reconciliationInstanceList]
}
Я сохранил список выверки в сеансе.
Любые советы / входы?
Мой код действия списка приведен ниже.
def list ={
// Получение параметров, введенных на предыдущей странице
def odcNum = params.odcNum
def odcDate = params.odcDate
def date = ноль
def reconciliationInstance = new Reconciliation()
reconciliationInstance.properties=params
//Validation if all parameters have been entered by the user
if (reconciliationInstance.validate()) {
def results
SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MMM-yyyy")
if(odcDate instanceof Date) {
date = sdfSource.format(odcDate);
}else{
date = odcDate
}
//Query to be fired. I have altered this query a bit. My actual query returns around 15 parameters
String odcData="select odc_access from odc_manager where odc_date=to_char('" + date + "') and odc_num like trim('" + odcNum + "')"
def reconciliationInstanceList = new ArrayList<Reconciliation>()
Sql sql = new Sql(dataSource)
results = sql.eachRow (odcData)
{
def reconciliation = new Reconciliation()
reconciliation.setAccess it.access
reconciliationInstanceList.add reconciliation
session["reconciliationInstanceList"]=reconciliationInstanceList
}
[reconciliationInstanceList: reconciliationInstanceList]
}
else {
render(view: "search", model: [reconciliationInstance: reconciliationInstance])
}
}
Кстати, я новичок в Grails. Таким образом, вы найдете немного Java в моем коде.
Что-то отсутствует в моем коде? Поэтому сортировка не работает. Входы?