2011-07-17 49 views
0

我在更新primefaces中的組件時遇到問題。這裏有一個例子:在primefaces中更新DataTable的問題

  <h:form> 
      <p:panel style="width: 350px;" header="Partial Process"> 
      <p:dataTable id="tablaPersonas" var="per" value="#{manejador.lista}"> 
       <p:column style="text-align: center;"> 
        <f:facet name="header"> 
         <h:outputText value="Nombre" /> 
        </f:facet> 
        <h:outputText value="#{per.nombre}" /> 
       </p:column> 
       <p:column style="text-align: center;"> 
        <f:facet name="header"> 
         <h:outputText value="Apellido" /> 
        </f:facet> 
        <h:outputText value="#{per.apellido}" /> 
       </p:column> 
       <p:column headerText="Editar" style="text-align: center;"> 
        <p:commandButton value="Editar"/> 
       </p:column> 
      </p:dataTable> 
    </p:panel> 
      <p:commandButton value="Abrir" onclick="widgetDlgAgregar.show();"/> 

      <p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250" height="150" closable="true"> 
       <h:panelGrid id="gridAdd" columns="2"> 
        <h:outputLabel value="Nombre:"/> 
        <p:inputText value="#{manejador.auxiliarAgregar.nombre}"/> 

        <h:outputLabel value="Apellido:"/> 
        <p:inputText value="#{manejador.auxiliarAgregar.apellido}"/> 

        <p:commandButton oncomplete="widgetDlgAgregar.hide();" update="tablaPersonas,gridAdd" value="Agregar" actionListener="#{manejador.agregarPersona}"/> 
       </h:panelGrid> 
      </p:dialog> 

     </h:form> 

正如你看到的,我點擊了一個名爲「Abrir」和一個對話框,命令按鈕與「Agregar」爲標題打開。我填寫輸入框,當我點擊CommandButton「Agregar」時,DataTable沒有更新。這是爲什麼發生?

回答

1

哦,對不起,我想你忘記了此更新

試這應該工作

  <h:form prependId="false"> 
      <p:panel style="width: 350px;" header="Partial Process"> 
       <p:dataTable id="tablaPersonas" var="per" 
        value="#{manejador.lista}"> 
        <p:column style="text-align: center;"> 
         <f:facet name="header"> 
          <h:outputText value="Nombre" /> 
         </f:facet> 
         <h:outputText value="#{per.nombre}" /> 
        </p:column> 
        <p:column style="text-align: center;"> 
         <f:facet name="header"> 
          <h:outputText value="Apellido" /> 
         </f:facet> 
         <h:outputText value="#{per.apellido}" /> 
        </p:column> 
        <p:column headerText="Editar" style="text-align: center;"> 
         <p:commandButton value="Editar" /> 
        </p:column> 
       </p:dataTable> 
      </p:panel> 
      <p:commandButton value="Abrir" onclick="widgetDlgAgregar.show();" update="gridAdd" /> 



      <p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250" 
       height="150" closable="true"> 
       <h:panelGrid id="gridAdd" columns="2"> 
        <h:outputLabel value="Nombre:" /> 
        <p:inputText value="#{manejador.auxiliarAgregar.nombre}" /> 

        <h:outputLabel value="Apellido:" /> 
        <p:inputText value="#{manejador.auxiliarAgregar.apellido}" /> 

        <p:commandButton oncomplete="widgetDlgAgregar.hide();" 
         update="tablaPersonas,gridAdd" value="Agregar" 
         actionListener="#{manejador.agregarPersona}" /> 
       </h:panelGrid> 
      </p:dialog> 

     </h:form> 
0

嘗試把你的

<p:dialog header="Agregar" widgetVar="widgetDlgAgregar" width="250" height="150" closable="true">

形式外,並添加prependId = 「假」到窗體<h:form prependId="false" >