我有这样的数据表:

  <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属性给出的对象。 因为构面是独立于行的


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!