4

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

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

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

有什么方法可以实现我需要的“组合列排序发布”吗?

提前致谢。

更新:

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

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

4

1 回答 1

0

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

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

于 2011-06-03T22:39:01.437 回答