我有这样的数据表:
<p:dataTable value="#{noteMB.noteList}" var="noteItem" id="noteListTable"
rowKey="#{noteItem.hashCode()}" selectionMode="single" selection="#noteMB.selectedNote}" paginator="true" rows="10" paginatorPosition="top"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15">
<p:column width="300">
<f:facet name="header">
<h:outputText value="#{noteItem.name == 'blabla' ? 'true' : 'false' }" />
</f:facet>
<h:outputText value="#{noteItem.code}" />
</p:column>
</p:dataTable>
我的问题:为什么 noteItem 在facet name="header"区域中为空? 当我运行此代码时,标题(noteItem.name)为 false 并且列值(noteItem.code)有一个值。
请您参考如下方法:
noteItem 是您的 var 条目。
var="noteItem"
这个 var 属性应该保存 dataTable
每一行的变量项。 var 将遍历 noteList
中的每个项目。
正如 Daniel 所说,在 h:facet
标记期间,甚至还没有开始创建行。它是每列的主标题,其中实际上没有数据表行。 因此你会得到空值。
简而言之,你无法访问facets中var属性给出的对象。 因为构面是独立于行的。