JSF:
<rich:dataTable>
...
<h:column>
<f:facet name="header">
<h:commandLink action="fileSearchSort" styleClass="theader">
Name
</h:commandLink>
</f:facet>
#{f.name}
</h:column>
...
</rich:dataTable>
如果这样做:
...
<h:column>
<h:commandLink action="fileSearchSort" styleClass="theader">
<f:facet name="header">
Name
</f:facet>
</h:commandLink>
#{f.name}
</h:column>
...
标题中的“名称”标签消失了。
是否可以将整个f:facet
标题设为commandLink
?
感谢。
答案 0 :(得分:2)
至于你所看到的行为,<f:facet>
将被嵌套为JSF组件的直接子组件,该组件应该拥有facet,在这种情况下是<h:column>
。将其置于<h:commandLink>
内将使其成为<h:commandLink>
的方面,但该组件不支持名为header
的构面,因此您什么也看不见。< / p>
对于具体的功能需求,JSF <h:commandLink>
组件呈现HTML <a>
元素,默认情况下为inline元素。如果您想让它占据父HTML <th>
元素的整个空间,那么您需要改为<a>
block元素。只需将display: block
添加到其样式类即可。
.theader {
display: block;
...
}
答案 1 :(得分:0)
facet的元素将呈现为某种容器,因此如果您放置在消耗整个区域的<h:commandLink>
<span>
或<div>
标记内,那么commandLink应该工作
<h:column>
<f:facet name="header">
<h:commandLink action="fileSearchSort" styleClass="theader">
<span style="width: 100%; height: 100%;">
Name
</h:commandLink>
</f:facet>
#{f.name}
</h:column>