我必须在Student
中显示来自<p:dataTable>
表的数据,如下所示:
<p:dataTable
value="#{school.getStudent(GENDER)}"
var="student" />
......all <p:columns>
</p:dataTable>
在此,school.getStudent(MALE)
将返回所有男生的列表,school.getStudent(FEMALE)
将返回所有女生的列表。
现在我面临的问题是订购数据。 要求是:
MALE
,请根据ID
FEMALE
,请根据NAME
ID
和NAME
是Student
表的列。
我怎样才能做到这一点?
答案 0 :(得分:3)
在你的支持bean中做。在返回之前对要显示的Collection进行排序。 Primefaces将按照Collection提供条目的顺序显示表中的条目。因此,请使用ArrayList
保留订单,并使用比较器和Collections.sort(...)
对列表进行排序。
可能看起来像这样:
public List<Student> getStudent(Gender gender) {
Comparator<Student> comparator;
if (gender == Gender.MALE) {
comparator = new MaleStudentComparator();
}
else {
comparator = new FemaleStudentComparator();
}
return Collections.sort(studentList, comparator);
}
答案 1 :(得分:0)
<p:column sortBy=#{bean.gender ? widgetVar.Name : widgetVar.id}>
假设bean.gender是一个布尔值,在女性的情况下返回“True”,在“Male”的情况下返回“False”。