मुझे कमांड बटन के साथ एक डाटाटेबल अपडेट करके कुछ समस्याएं आ रही हैं।प्राइमफेस - कमांड के साथ अद्यतन डेटा अपडेट करें
<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>
समस्या है जब CommandButton कि कार्रवाई listUsersController.deleteUser करता है पर क्लिक है: यह एक्सएचटीएमएल फ़ाइल है। विधि सफलतापूर्वक निष्पादित की गई है और उपयोगकर्ता हटा दिया गया है। लेकिन डेटाटेबल अपडेट नहीं किया गया है। मैं चाहता हूं कि हटाए गए रिकॉर्ड अब AJAX के साथ सूची में दिखाई न दें।
मैं पहले से ही update="@form"
, update="@parent"
, update="@all"
, update="usersList"
, update=":list:usersList"
के साथ परीक्षण किया और कुछ भी नहीं काम करता है।
यह 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;
}
}
आपको बहुत बहुत धन्यवाद। मुझे नहीं पता कि मैं इसे क्यों भूल गया। सूची को फिर से लोड करना बहुत अच्छा काम करता है! – jacruzca