update form faces editar ajax jsf-2 datatable

form - Datatable no representa con llamada ajax en jsf



render jsf ajax (1)

Tengo una tabla de datos que debe actualizarse con el uso de un comando ajax que se encuentra en cada fila.

<div class="authorSection"> <h:dataTable id="author-table" var="author" value="#{authorPOCBean.getauthors()}"> <h:column> <f:facet name="header"> <h:outputText value="Org Short Name" /> </f:facet> <h:outputText id="authorOrganizationShortName" value="#author.orgShortName}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Organization Name" /> </f:facet> <h:outputText id="authorOrganizationName" value="#{author.orgName}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Location" /> </f:facet> <h:outputText id="authorLocation" value="#{author.orgLocation}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="author Type" /> </f:facet> <h:outputText id="authorType" value="#{author.authorName}" /> </h:column> <h:column> <h:form id="deleteauthorForm"> <h:commandLink action="#{authorPOCBean.deleteauthor(author)}" value="Delete"> <f:ajax render=":author-table"/> </h:commandLink> </h:form> <h:form id="setInitialauthorForm"> <h:commandLink action="#{authorPOCBean.makeInitialauthor(author)}" value="Make Initial"/> </h:form> </h:column> </h:dataTable> </div>

Cuando se utiliza la función de eliminación, parece que la tabla se mantiene sin cambios o quizás se procesa con datos antiguos. Lo tengo configurado ahora para que lo primero que haga el método llamado sea cambiar la matriz interna ENTONCES cambia los datos de la base de datos, pero aún usa los datos anteriores.

¿Hay algo obviamente mal con mi código?

Revisé el enlace a continuación y probé las recomendaciones y no obtuve ningún resultado nuevo. De hecho, si rodeo la mesa con un formulario, la mesa no se construirá correctamente.

JSF- <f: ajax> no puede representar tablas de datos


Tenga en cuenta que ha colocado el botón Eliminar y los botones iniciales incluidos en un formulario separado, mientras que el componente DataTable se coloca fuera del formulario.

Intente tener un formulario único que comience al principio de la tabla. (ie) Su componente de mesa y los dos botones deben estar encerrados dentro de la misma forma

y para la actualización Ajaxical, lo siguiente debería funcionar para usted.

<f:ajax render="@form"/>

Si por algún otro motivo no puede usar un solo formulario y necesita formularios múltiples, consulte esta pregunta Cómo retener datos del formulario en una página de formularios múltiples