当前位置: 首页 > 知识库问答 >
问题:

如何自定义排序PrimeFaces dataTable列

梁马鲁
2023-03-14

我试图在PrimeFaces数据表上实现一个排序函数。我已经创建了一个模型对象列表。我们有一个问题是表的排序顺序。排序列包含整数和字符串值。当我应用sort=#{var.id}等默认排序机制时,列表是基于ASCII顺序排序的。下面是排序结果的图像。我目前正在使用PrimeFaces V5.2.5

<p:column headerText="Code Type" sortBy="#{var.codeType}">
    <h:outputText value="#{var.codeType}"/>
</p:column>

谁能指导我如何克服这个问题。

共有1个答案

万俟靖
2023-03-14

这里有两个选项:

  1. p:column
  2. 上使用 sortfunction
  3. 使用实现可比
  4. 的类型

创建一个函数,它接受两个对象,并以comparable的方式比较它们:

public int sortByModel(Object o1, Object o2) {
    //return -1, 0 , 1 if o1 is less than, equal to or greater than o2
}
<p:column sortBy="#{var.codeType}" sortFunction="#{yourBean.sortByModel}">

为列使用自定义类型,并确保它实现了可比较的 。这迫使您实现compareTo(YourCustomTypeO)方法,您可以使用该方法以您喜欢的任何方式进行排序。

另见:

  • 如何实现Java可比接口?
  • 对可能包含数字的字符串排序
 类似资料:
  • 问题内容: 我使用atocomplete.jquery插件来建议输入文本,结果得到了这个数组: 当我开始搜索从子字符串开始的东西时,它显示出数组排序如下: 我需要这样的东西: 有任何想法吗? 问题答案: 该插件可能区分大小写。尝试输入而不是。您可能将结果设置为不区分大小写。这个问题可能会有所帮助。 对于上的自定义排序函数,您可以使用任何JavaScript函数并将其作为参数传递给的方法,如下所示:

  • 问题内容: 我有这样的查询: 但是,当我打印出来时,它会自动进行1,2,3,4,5的排序。我们如何在不更改数据库结构的情况下保持顺序(2,4,1,5,3)? 谢谢! 问题答案: 我问这个: mysql按问题排序 我得到的答案和所有功劳归于他们: 您可以使用CASE运算符指定顺序: 在PHP中,你可以像这样:

  • 问题内容: 我有一个问题:这是由ElementTree库形成的列表列表。 word1..4可能包含Unicode字符,即(â,ü,ç)。 我想按我的自定义字母对列表列表进行排序。 我知道如何从这里按python中的单词对自定义字母进行排序 我也知道如何从此处http://wiki.python.org/moin/HowTo/Sorting按键排序 问题是我找不到如何应用这两种方法对“列表列表”进行

  • 有的时候我们希望排序不是仅仅按照自然顺序排序。例如,我们希望按照字符串的长度来对一个字符串数组排序而不是按照字母顺序来排序。这里我们介绍一下Go的自定义排序。 package main import "sort" import "fmt" // 为了能够使用自定义函数来排序,我们需要一个 // 对应的排序类型,比如这里我们为内置的字符串 // 数组定义了一个别名ByLength type ByLe

  • 这段代码的输出是:周一周二周三周四周五周六周日 但是我想要的输出是这样的SUN MON TUE WED THU FRI SAT 这意味着我想定制排序功能,将星期天移到第一天。 我该怎么做?提前谢谢。

  • 问题内容: 我想为汽车清单开发一个排序演示。我正在使用数据表显示汽车列表。现在实际上我想按汽车颜色对列表进行排序。这里不是按字母顺序排序的。我想使用我的自定义排序顺序,例如先是红色汽车,然后是蓝色,等等。 为此,我尝试使用,但它只允许按字母顺序排序。 因此,任何人都可以指导我实现使用该技术的方法,以便使排序变得更快。 问题答案: 我建议你为汽车颜色创建一个枚举,而不要使用字符串,并且枚举的自然顺序