2009-11-06 2 views
0

Как структурировать мои страницы и частичные шаблоны, чтобы Ajax поиграл с <paginate> и сортировкой столбцов?Grails: проблема с поисковым вызовом и упорядочением в шаблоне просмотра

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

С моей search.gsp:

<div id="searchBox"> 
    Enter a key or phrase: <g:remoteField name="searchBox" 
         update="resourceSearchResultPanel" paramName="q"            
         url="[controller:'resourceEntry',action:'searchForResources']" 
         /> 
</div> 
<div id="resourceSearchResultPanel" /> 

Мой контроллер обрабатывает запрос поиска следующим образом:

def searchForResources = { 
     params.max = Math.min(params.max ? params.max.toInteger() : 10, 100) 
     params.offset = params.offset ? params.offset.toInteger() : 0 
     log.debug "Handling search post action" 
     def q = params.q ?: null 
     log.debug "Search phrase is $q" 
     def searchResults 
     if (q) { 
      searchResults = [ 
       results: ResourceEntry.search(q,[offset: params.offset, max: params.max]), 
       resultCount: ResourceEntry.countHits(q), 
       q: q.encodeAsHTML() 
      ] 
     } 
     render(template:"resourceSearchResultPanel",model:searchResults) 
    } 

_resourceSearchResultPanel.gsp просто таблица с этим <paginate> тег:

<g:paginate action="searchForResources" total="${resultCount}" params='["q":"${q}"]' /> 

Проблема заключается в том, что, когда тег <paginate> вызывает cont ролик, вся страница обновляется содержимым шаблона _resourceSearchResultPanel.gsp, а я просто хочу, чтобы сам _resourceSearchResultPanel.gsp обновлялся внутри search.gsp.

Там нет update атрибута, как есть в remoteField теге ...

ответ

1

постраничный тег не поддерживает создание Ajax ссылки, так что вы должны будете написать свой собственный verison тега, который вызывает remoteLink вместо ссылка.

веселит

Lee

+0

Могу ли я попытаться написать свой собственный, или я должен использовать другую таблицу данных? –

+0

Спасибо за направление. Быстрый поиск Google для «paginate remoteLink» привел меня к тому, кто выполнил именно это: http://tdsystemsgroup.com/resources.html –

1

Я хотел бы предложить вам удаленные нумерации страниц плагины для Grails. Этого было бы достаточно для вашего требования. Для более подробной информации, пожалуйста, обратитесь к следующему сайту: -

http://www.grails.org/plugin/remote-pagination

Пожалуйста, не стесняйтесь вернуться упаковывают любое беспокойство.

+0

Будьте осторожны, этот плагин имеет открытую проблему безопасности XSS в течение полугода (https://github.com/amitjain1982/remote-pagination/issues/12). –

Смежные вопросы