Tôi đang đối mặt với một số vấn đề bằng cách cập nhật một datatable với một commandButton. Đây là tệp xhtml:Primefaces - cập nhật datatable với commandButton không hoạt động
<div class="grid_16">
<h:form id="list">
<p:messages></p:messages>
<p:dataTable styleClass="result-table" var="user" id="usersList"
value="#{listUsersController.users}" widgetVar="userTable"
paginator="true" rows="10" paginatorAlwaysVisible="false">
<f:facet name="header">
Listado de usuarios
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="#{cms['users.username']}" />
</f:facet>
#{user.username}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{cms['users.name']}" />
</f:facet>
#{user.name}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{cms['users.lastname']}" />
</f:facet>
#{user.lastname}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{cms['users.active']}" />
</f:facet>
#{user.active}
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{cms['general.actions']}" />
</f:facet>
<p:commandButton value="Eliminar" image="ui-icon-trash"
actionListener="#{listUsersController.deleteUser}"
update="list:usersList">
<f:param name="user" value="#{user.id}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
</div>
Vấn đề là khi nhấp vào nút lệnh thực hiện danh sách hành độngUsersController.deleteUser. Phương thức được thực thi thành công và người dùng bị xóa. Nhưng các datatable không được cập nhật. Tôi muốn bản ghi bị xóa không xuất hiện nữa trong danh sách bằng ajax.
tôi đã thử nghiệm với update="@form"
, update="@parent"
, update="@all"
, update="usersList"
, update=":list:usersList"
và không có gì hoạt động.
Đây là phương pháp trong managedBean:
public String deleteUser() {
try {
FacesContext fc = FacesContext.getCurrentInstance();
Map<String, String> params = fc.getExternalContext().getRequestParameterMap();
int id = Integer.parseInt(params.get("user"));
userService.removeUserById(id);
FacesContext.getCurrentInstance().addMessage
(null,new FacesMessage(FacesMessage.SEVERITY_INFO,MessageProvider.getMessageProvider()
.getValue("cms","users.error.userDoesNotExist"),""));
return SUCCESS;
} catch (EntityNotFoundException e) {
FacesContext.getCurrentInstance().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,MessageProvider
.getMessageProvider().getValue("cms","users.error.userDoesNotExist"),""));
return ERROR;
}
}
Cảm ơn bạn rất nhiều. Tôi không biết tại sao tôi quên điều đó. Tải lại danh sách hoạt động tuyệt vời! – jacruzca