Mam tabelę danych. Każdy wiersz tabeli ma commandButton
o nazwie "Usuń", który ma usunąć ten wiersz z modelu i widoku i wykonać aktualizację w miejscu. Jako stopka mam inny commandButton
o nazwie "Usuń każdy wiersz".Datatable nie aktualizuje się po pomyślnym wywołaniu ajax
Ostatni przycisk działa. Klikam na niego, każdy wiersz jest usuwany z modelu (tzn. ArrayList
zawierający elementy staje się pusty) i dataTable
i footer facet
jest ponownie renderowany (lub aktualizowany) w widoku.
Z drugiej strony, po kliknięciu przycisku w jednym z wierszy, aby go usunąć, częściowo działa. Odpowiedni element zostanie usunięty z modelu, ale widok nie zostanie zaktualizowany. Ten wiersz nadal istnieje w numerze dataTable
, a numer footer facet
nie został zmieniony.
Mam następujący kod w moim users.xhtml
.
<f:metadata>
<f:viewParam name="id" value="#{users.id}" />
<f:event type="preRenderView" listener="#{users.init}" />
</f:metadata>
...
<h:form id="usersForm">
<p:outputPanel>
<p:dataTable id="userTable" value="#{users.user.friendList}" var="friend">
<p:column>
<h:outputText value="#{friend.name}" />
</p:column>
<p:column>
<p:commandButton action="#{users.user.removeFriend(friend)}"
ajax="true"
update="userTable somethingElse" process="@this"
onerror="errorDialog.show();"
icon="ui-icon-delete"
title="delete user">
</p:commandButton>
</p:column>
<f:facet id="somethingElse" name="footer">
aye: ${users.user.xxx}
</f:facet>
</p:dataTable>
</p:outputPanel>
<p:commandButton action="#{users.user.removeAllFriends()}" ajax="true"
update="userTable somethingElse"
process="@this"
icon="ui-icon-close"
value="delete all friends?">
</p:commandButton>
</h:form>
Więc, jak myślisz, jaki jest tutaj problem?
Używam JSF 2.0 i Primefaces 3,0
Nie zadawaj wielu pytań w jednym pytaniu. Jedno pytanie na pytanie, proszę :) Wydałem drugie pytanie. Również powiązane poprzednie pytanie nie jest w ogóle powiązane. To może ten sam kod, ale problem nie jest taki sam. Co do obecnego problemu: z której wersji PF korzystasz? Co się stanie, jeśli zamiast tego użyjesz 'update =" @ form "'? – BalusC
Przepraszamy za złe słowa, ale dziękuję bardzo, jeszcze raz :) O wiele pytań, postaram się dać z siebie wszystko następnym razem :) –
Przepisałem to jako odpowiedź :) – BalusC