我正在使用glassfish 3.0.1,并且是第一次在dataTable中尝试使用columnClasses。
这是这样的:
<h:dataTable value="#{coreGridBean.heroBeanList}" var="hero"
captionStyle="font-size: 0.95em; font-style:italic"
styleClass="orders"
headerClass="ordersHeader"
footerClass="ordersHeader"
columnClasses="oddColumn,evenColumn">
从核心jsf书中读取,它表示只通过在columnClasses属性中指定2个类,当列数量大于2时,将重复这两个类。
假设我有五列,columnClasses将变为oddColumn,evenColumn,oddColumn,evenColumn,oddColumn,我们只需要像这样定义:columnClasses =“oddColumn,evenColumn”
但根据我对3列的经验,它不是这样的。从第三栏开始,他们没有上课。我必须指定columnClasses =“oddColumn,evenColumn,oddColumn”才能使其正常工作
这是一个错误还是我只是有一个错误的错误?
答案 0 :(得分:13)
重复仅适用于rowClasses
。
来自JSF 2.0 h:dataTable
tag documentation:
columnClasses
将用于此表的列的CSS样式类的逗号分隔列表。还可以为任何单个列指定以空格分隔的类列表。 如果此列表中的元素数小于UIData的实际列子元素数,则不会为每列输出大于列表中元素数的“class”属性。如果列表中的元素数量大于UIData的实际列子元素数,忽略最后一列之后列表中位置的元素。
rowClasses
以逗号分隔的CSS样式类列表,它将应用于此表的行。还可以为任何单独的行指定空格分隔的类列表。反过来,这些样式应用于表中的每一行。例如,如果列表包含两个元素,则列表中的第一个样式类将应用于第一行,第二个行应用于第二行,第一行应用于第三行,第二行应用于第四行等。换句话说,我们一直在遍历列表,直到我们到达终点,然后我们再次从头开始。
也许这本书错了,或者你误读了这本书。
由于列号通常总是在视图定义中固定,因此只需自己重复它就不费力。
<h:dataTable columnClasses="oddColumn,evenColumn,oddColumn,evenColumn">
<h:column></h:column>
<h:column></h:column>
<h:column></h:column>
<h:column></h:column>
</h:dataTable>