Affects Version/s: 2.2 Sprint 8
Fix Version/s: None
Operating System: All
I think the handling of column classes of the h:dataTable is not consistent.
Looking at the code on the calling page, you have the 'columnClasses' attribute
on the one side and h:column tags within the xhml body on the other side. Both
should correspond to each other, especially because the data type displayed in
the column and it's visual style are closely connected (e.g. you would
right-justify a number type and display booleans as a checkbox-like symbol).
I now you decide, that you want to use the 'rendered' attribute on some of the
h:column subelements to temporarily hide those columns, the mapping between
columns and its style class should not be lost. But this is the case with the
A static columnClasses attribute should do and should stay consistent with the
static h:column tags in the xhtml code. The dynamic behaviour should happen on
the serverside, rendering subsets of the given columns should also consider the
right subset of the given columnClasses.
Note that instead of putting comma-separated styleClass names into the attribute
of the h:dataTable the spec could also allow to put them as a single-valued
styleClass attribute directly into the corresponding h:column subelement – the
whole issue would not exist then.
So IMHO it's an unnecessary implementation effort to constantly supply an
appropriate sublist (also needed to be converted to a comma-separted string) as
a dynamic 'columnClasses' attribute to h:dataTable.
[see also JSF-2-RI issue 1258 at
https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1258 – Contrary to
my misleading comment there this not a matter of whether PPR/ajax is used or not]