RichFaces:当多列排序模式打开时,释放DataTable的排序列



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

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

示例:当用户按列a和列B进行排序时(反之亦然),并且考虑到我也在使用sortPriority属性(这是我无法更改的要求),当当前会话打开时,a-BB排序)时,在进行多列排序后,不可能在同一会话中获得此结果。

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

提前谢谢。

更新:

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

有人成功地应对了不得不​​在运行时使用javascript为rich:dataTable组件属性赋值?

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

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

相关内容

  • 没有找到相关文章

最新更新