2011-08-22 17 views
1

我有一個豐富的:Datatable與動態列...直到這裏它的好...我從數據庫中獲取所有數據,我的代碼顯示所有複選框的正確值...但是當我改變它們並點擊「 salvar」按鈕,在另一側的值仍然和以前一樣...... 但是如果我把外面的豐富的inputText:數據表像爲什麼我的更改變得富有:datatable在我的家中不可用?

<h:inputText value="#{matrix.teste}"/> 

並把任何值,然後單擊‘salvar’i的值「已經輸入之前去我家......正確

<ui:param name="matrix" value="#{inscricaoMatrix}" /> 
     <a4j:outputPanel id="matrixCredenciamento"> 
    <a4j:form> 
      <rich:dataTable value="#{matrix.rows}" var="row" id="matrix" rendered="#{not empty query.inscricoes}"> 

      <rich:column label="Nome"> 
       <f:facet name="header"> 
        <h:outputText value="Nome" /> 
       </f:facet> 
       <h:outputText value="#{row.nome}" /> 
      </rich:column> 
      <rich:column label="E-mail"> 
       <f:facet name="header"> 
        <h:outputText value="E-mail" /> 
       </f:facet> 
       <h:outputText value="#{row.email}" /> 
      </rich:column> 
      <rich:column label="Credenciamento"> 
       <f:facet name="header"> 
        <h:outputText value="Credenciamento" /> 
       </f:facet> 
       <h:selectBooleanCheckbox value="#{row.credenciamento}" /> 
      </rich:column> 


       <ui:param name="y" value="#{matrix.rows.indexOf(row)}" /> 

       <rich:columns value="#{matrix.columns}" var="col" index="x" style="text-align: center; width: 60px;"> 

        <ui:param name="index" value="#{y * matrix.columns.size() + x}" /> 
        <ui:param name="cell" value="#{matrix.cells[index]}" /> 

        <f:facet name="header"> 
         <h:outputText value="#{col.horario}" escape="true"> 
          <f:convertDateTime pattern="dd/MM/yyyy HH:mm"/> 
         </h:outputText> 
        </f:facet> 
        <h:selectBooleanCheckbox value="#{cell}" /> 

       </rich:columns> 
      </rich:dataTable> 

      <h:inputText value="#{matrix.teste}"/> 

      <h:commandButton id="salvar" value="Salvar" action="#{matrix.update()}" />   

     </a4j:form> 
     </a4j:outputPanel> 
</ui:composition> 

有人知道可能是什麼問題?即時通訊與頁面工作到另一個(使用UI:包括)添加此頁......

回答

0

好,

我正在尋找一些解決方案但沒有找到一個最好的方式... 所以我解決了使用一種變通方法的問題...

<h:selectBooleanCheckbox value="#{cell}" name="presencasHorarios" onclick="setPresencas(#{index},this.checked)"/> 

然後我創建了一個js函數是這樣的:

<a4j:jsFunction name="setPresencas" action="#{matrix.addAlteracaoPresenca()}"> 
      <a4j:actionparam name="param1" assignTo="#{matrix.index}" /> 
      <a4j:actionparam name="param2" assignTo="#{matrix.presenca}" />   
</a4j:jsFunction> 

在我創建了一個列表中的另一面......所以我通過數組的索引和這個項目的新值...當我提交它來堅持或更新時,我閱讀該列表,驗證哪個項目已被更改,並且它的新值...爲了更容易,我創建了一個HashMap傳遞索引和值...所以如果用戶更改值1000次,該值將永遠是最後一個...

相關問題