grails - 如何在 Grails 中取消过滤?

标签 grails post filter

我正在开发 Grails 应用程序。有一个域类“参与者” - 在 View 中可以选择一些过滤器。这些过滤器通过相应的 Controller 应用。将过滤器应用于选择后,结果就会发布。
现在的问题是,我不知道如何恢复这些过滤器或清除它们。显然, View 中的简单 HTML 重置按钮将不起作用,因为过滤结果是 POST 编辑的。

谁能告诉我,如何清除使用过的过滤器?
我不需要硬编码的 href 来将用户重定向到正常的“列表”操作。
有什么想法吗?

最佳答案

有很多方法可以做(我认为)你想做的事情。一种想法是在同一 Controller 中创建另一个操作作为返回所需列表的过滤器操作。我可以尝试给您举一个例子,但从您发布的代码来看,不清楚您来自哪个 View 、清除过滤器后应显示哪个 View 或硬编码 id (1) id 来自何处。另外,您发布的代码是否可能已被修改以试图解决此问题? getParticipants 方法似乎根本没有被调用。

如果您想回答其中一些问题:起始 View 、目标 View (清除过滤器后)、涉及的 Controller 以及 id 来自哪里,我可以尝试给您更好的答案。

感谢您提供额外信息。这是一种可能的解决方案。我没有尝试过这个,所以语法可能不准确,但它会让你开始:

看起来,如果没有过滤器,您将获得 session 的所有参与者。如果这是正确的,那么您可以将这样的操作添加到 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)])
}

然后您可以向页面添加一个标记,而不是像这样的硬编码 anchor 标记: 清除过滤器

希望对您有所帮助, 戴夫

关于grails - 如何在 Grails 中取消过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328100/

相关文章:

java - 当从可运行的 jar 执行时,缺少resolveStrategy会破坏DSL

python - aiohttp.ClientSession().post

php - 隐藏post参数,phpcurl

C 语法 - 我需要做一个简单的 if 分支来检测特定条件

html - 一个元素被filter或者其他原因调整时如何调整它的位置

grails - Grails 3更改默认服务范围

rest - 升级到 Grails 2.3.0 时缺少 RESTful 请求的参数

java - 如何在grails中仅计算URL(没有<a>标签)?

javascript - Express 端点对于 POST 返回 404,对于 GET 返回 200

c# - 过滤没有数据绑定(bind)的 DataGridView