Как отфильтровать в Grails? - PullRequest
       19

Как отфильтровать в Grails?

2 голосов
/ 25 августа 2009

Я работаю над приложением Grails. Есть домен класса «участник» - в представлении есть возможность выбрать несколько фильтров. Эти фильтры применяются через соответствующий контроллер. После применения фильтра к выбору результат публикуется.
Теперь проблема в том, что я не знаю, как отменить эти фильтры или очистить их. Очевидно, что простая кнопка сброса HTML в представлении не будет работать, так как отфильтрованный результат POST ed.

Может кто-нибудь сказать мне, как очистить используемые фильтры?
Я не хочу жестко закодированный href, который перенаправляет пользователя на обычное действие «список».
Есть идеи?

1 Ответ

4 голосов
/ 27 августа 2009

Есть много способов сделать то, что (я думаю) вы хотите сделать. Одна идея состоит в том, чтобы создать другое действие в том же контроллере, что и действие фильтра, которое возвращает нужный список. Я мог бы попытаться привести вам пример, но из кода, который вы разместили, не ясно, из какого вы представления, какое представление должно отображаться после очистки фильтра или откуда исходит идентификатор с жестким кодом id (1). Кроме того, возможно ли, что код, который вы разместили, был изменен в попытке решить эту проблему? Метод getParticipants не вызывается вообще.

Если вы хотите ответить на некоторые из этих вопросов: начальное представление, представление цели (после очистки фильтров), задействованный контроллер и откуда исходит идентификатор, я мог бы попытаться дать вам лучший ответ.

Спасибо за дополнительную информацию. Вот одно из возможных решений. Я не пробовал это, поэтому синтаксис может быть не точным, но он поможет вам начать:

Похоже, что вы получили бы без фильтров всех участников конференции. Если это правильно, вы можете добавить подобное действие в ParcipantController.groovy

def clearFilter = {
    def conference = Conference.get(params.id)
    def participants = conference.participants
    render(view:'list', model:[participants: participants, 
     participantsTotal: participants.size(),
     startDate:conference.start, 
     endDate:conference.end,
     canWrite: accessRightsService.canWrite(request.beholder, conference)])
}

Затем вы можете добавить тег на страницу вместо жестко закодированного тега привязки, например: Очистить фильтр

Надеюсь, это поможет, Dave

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