Сортировка Грааля - PullRequest
       0

Сортировка Грааля

0 голосов
/ 02 октября 2010

У меня есть приложение 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 в моем коде. Что-то отсутствует в моем коде? Поэтому сортировка не работает. Входы?

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Нашли обходной путь для этого. Передал порядок сортировки (params.order) в запрос sql и разрешил запросу выполнить сортировку. Результаты отображаются на GSP затем.

Если есть другой способ, дайте мне знать.

1 голос
/ 03 октября 2010

это должно вернуть вас к действию списка, но параметры, переданные действию, сообщат ему, как отсортировать полученную модель.

поведение правильное, я предполагаю, что ваш код в действии спискане кодируется должным образом ... Вы можете включить этот код, если вам нужны дополнительные указания.

См. пример списка действий

http://www.grails.org/GSP+Tag+-+sortableColumn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...