【问题标题】:RichFaces: Release sort column(s) of a DataTable when multiple column sort mode is onRichFaces:当多列排序模式打开时释放数据表的排序列
【发布时间】:2011-09-02 03:45:55
【问题描述】:

目前我正在开发一个项目(JSF 2.0,RichFaces 3.3.3),我必须在其中获得一个启用多列排序的 2 列 DataTable(我已经通过 sortMode="Multi" 属性完成了此操作)但是,与单列排序不同,在多列的情况下,我不可能释放正在执行排序的一列或多列(这在单列情况下通过单击其他列标题来完成)。

排序顺序在会话期间被锁定:即使在选项卡之间切换时,我的 Web 应用程序也会保持当前的列排序设置。我需要在会话中恢复此配置以允许用户选择其他排序顺序,因为目前重置它的唯一方法是注销并重新输入。

示例: 当用户按列 A 然后按列 B (反之亦然)进行排序时,并且考虑到我也在使用 sortPriority 属性(它是要求我无法更改),当当前会话打开时,一对 AB 组合被锁定。当用户只需要按一列对 DataTable 进行排序(按 AB 排序)时,在进行多列排序后不可能在同一个会话中得到它.

有没有办法实现我需要的“组合列排序发布”?

提前致谢。

更新:

我发现我的数据表中只有两个数据列,唯一的方法是通过某种方式在"Multi""Single" 值之间切换sortMode 属性。这样,我可以保证在单列排序模式下,它会释放列的组合。

有没有人在运行时使用 javascript 必须为 rich:dataTable 组件属性赋值的情况成功地工作?

【问题讨论】:

    标签: sorting jsf-2 richfaces multiple-columns richdatatable


    【解决方案1】:

    查看rich:dataTablerich:columnsortBysortOrder 属性。通过在rich:column 上设置sortOrder="UNSORTED",它应该清除该列的排序。您也可以在rich:dataTable 本身上设置sortOrder="UNSORTED" 和/或sortBy="" 以获得更简单的解决方案(尽管我没有尝试过)。您可以在 JavaScript onLoad 函数或将属性绑定到其属性的 bean 中执行此操作。

    这应该比玩sortMode 更优雅一点:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      相关资源
      最近更新 更多