【问题标题】:Retain Sorting After Specific Action - Grails在特定操作后保留排序 - Grails
【发布时间】:2016-10-17 06:42:53
【问题描述】:

我有一个 gsp 表单,其中显示了包含详细信息的员工列表(即员工姓名、职务、部门、状态)。所有这些列都是可排序的。在我的控制器类中调用特定操作(即,将员工的状态从活动更改为非活动,反之亦然)后,排序会受到干扰。我在从 DB 检索时使用以下代码进行排序

    String strSort = params.sort ?: "empId";
    strSort += " "
    strSort += params.order?: "asc";

有什么方法可以保留发布“状态更改”操作之前的排序顺序?如果是怎么实现的?

【问题讨论】:

  • 你必须展示你的动作(控制器方法),否则很难提出任何建议。
  • 状态如何变化?您是在打开屏幕还是单击某些内容,然后通过 jquery (ajax) 向控制器/控制器发送请求,然后执行某些操作,然后更新列表-然后结果显示该列表的排序不正确。或者您是否将状态更新物理发布到控制器操作,然后刷新页面并列出?
  • @vahid 我正在单击状态图标,该图标通过 ajax 向控制器发送请求,并将具有更新状态的 emp 列表发送回。但是在这个动作之后,之前的排序顺序被打乱了

标签: grails gsp


【解决方案1】:

正如 rvargas 所建议的,可以通过多种方法实现。 queuekit plugin 尚未正确发布,因此您可以克隆 grails 3 / grails2 分支,具体取决于您正在使用的分支,还可以克隆测试站点以使其在插件中混淆这个概念:

简而言之,您需要separate out your search feature,您可以通过会话值执行此操作或将其作为子集列表迭代发送。

我决定不使用会话。然后当我点击删除 bean is bound back in with the request sent (这是要删除的 id)

最后是relists,所以这里不需要做任何其他事情:

当我调用 delete 函数使用的 ajax reloadPage 甚至更进一步的 postAction 时,最重要的一点是我 serialize search form。实际的搜索对象保存在tidy manner here

但是如果这太复杂了,那么在非常控制器链接中,会话搜索被注释掉了。我认为您可以启用它,忘记所有这些复杂性,并拥有一个 searchAgain() 功能,如果它在我的控制器中是xhr,它会呈现_list 模板,而不是绑定bean,而是绑定session.search 映射,如果你确实走了这条路你可能想改变from g:render to g:include action="searchAgain"

希望能帮助你更好地理解

【讨论】:

    【解决方案2】:

    我可以想到两种方法:

    • 将您的排序和顺序参数传递给您的操作并将它们发回 结果。

    • 每次更新时都将这两个参数存储在会话中。

    要从会话中存储和检索,请使用以下内容:

    private DEFAULT_SORT = 'myDefaultSort'
    
    def myAction() {
        if (params.sort && params.sort != session.getAttribute('sort-' + actionName)) {
            session.setAttribute('sort-' + actionName, params.sort)
        }
        params.sort = session.getAttribute('sort-' + actionName)?:DEFAULT_SORT
        ...
        //Your existing logic
    }
    

    如果您收到新的/不同的排序参数,请将其保存到会话中。然后你尝试从会话中加载现有参数,如果你没有存储任何值,你会得到一个默认值。

    【讨论】:

    • 你能告诉我如何获取当前会话的排序和顺序参数并将其传递给我的控制器吗?
    • @AnithaKamatchi 看看这个答案,正是你需要的stackoverflow.com/a/40151111/3897206
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2015-05-30
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多