2012-08-06 45 views
2

如果我把一個輸入組件放在數據表的外面,那麼使用輸入更新輔助bean,並且搜索工作得很好,在數據表中正確顯示結果。在PrimeFaces數據表頭中輸入不會更新輔助bean - 解決方案?

<h:form> 
<!-- ------- Calendar input component outside dataTable ------- --> 
    <p:calendar id="selectHireDate" value="#{backingBean.hireDateToSearch}" /> 

    <p:dataTable id="employeeDataTable" 
     value="#{backingBean.employeeDataModel}" var="employee"> 
     <p:columnGroup type="header"> 
      <p:row> 
       <p:column>       
         <f:facet name="header"> 
          Lorem Ipsum 
         </f:facet>       
       </p:column> 
      </p:row> 
     </p:columnGroup> 

     <p:column> 
      <h:outputText value="#{employee.hireDate}" /> 
     </p:column>  
    </p:dataTable> 

    <p:commandButton value="Submit" 
    actionListener="#{backingBean.searchEmployees}" 
    update="employeeDataTable" /> 
</h:form> 

但是,如果我將該輸入組件放在數據表的標題中,則突然間支持bean不再更新。 (我放在backingBean.setHireDateToSearch斷點其中得到由上面的代碼絆倒,但不是下面的代碼。)

<h:form>    
    <p:dataTable id="employeeDataTable" 
     value="#{backingBean.employeeDataModel}" var="employee"> 
     <p:columnGroup type="header"> 
      <p:row> 
       <p:column>       
         <f:facet name="header"> 
<!-- ------- Calendar input component inside dataTable ------- --> 
          <p:calendar id="selectHireDate" value="#{backingBean.hireDateToSearch}" /> 
         </f:facet>       
       </p:column> 
      </p:row> 
     </p:columnGroup> 

     <p:column> 
      <h:outputText value="#{employee.hireDate}" /> 
     </p:column>  
    </p:dataTable> 

    <p:commandButton value="Submit" 
    actionListener="#{backingBean.searchEmployees}" 
    update="employeeDataTable" /> 
</h:form> 

這是爲什麼?有沒有辦法讓後者的設置工作?

回答

1

我可以重現您的問題,並得到解決,當我擺脫<p:columnGroup>圍繞<f:facet name="header">它本身沒有多大意義,在這個構造無論如何。

<p:dataTable id="employeeDataTable" value="#{backingBean.employeeDataModel}" var="employee"> 
    <f:facet name="header"> 
     <p:calendar id="selectHireDate" value="#{backingBean.hireDateToSearch}" /> 
    </f:facet>       
    <p:column> 
     <h:outputText value="#{employee.hireDate}" /> 
    </p:column>  
</p:dataTable> 

(這隻能說明空<p:column>頭的第二個微小的線,你可以只用一點點CSS隱藏)

不知道這是由設計或由錯誤的地方引起與<p:dataTable>關聯的decode()方法。我想report它的PrimeFaces球員可以肯定。

+0

我想保留標題中的行,因爲我的表將有兩個標題行。我沒有看到消除columnGroup並保留行的方法。你看到解決方案嗎? – Kiwi 2012-08-06 19:31:22

+0

@Kiwi您是否找到解決此問題的解決方案? – Zak 2013-07-22 20:49:35

+0

我有一個類似的問題與p:selectBooleanCheckbox ...在這裏描述:http://forum.primefaces.org/viewtopic.php?f=3&t=37163這些問題有關嗎?錯誤? PS:我們使用PF 3.5.25。 @Balusc:你記得你報告了哪個bug嗎? – Kawu 2014-04-01 17:52:19

相關問題