1

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

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

在此处输入图像描述

任何人都可以指导我如何克服这个问题。

4

1 回答 1

4

这里有两个选项:

  1. 使用sortFunction在您的p:column
  2. 使用实现的类型Comparable

sortFunction

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

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}">

可比型

为您的列使用自定义类型并确保它实现Comparable<YourCustomType>. 这迫使您实现compareTo(YourCustomType o)可用于以任何您喜欢的方式排序的方法。

也可以看看:

于 2016-09-08T12:22:13.430 回答