Ajax mise à jour ne fonctionne pas, lors de l'utilisation d'un filtre sur p:dataTable
J'ai un datable qui comprend la fonctionnalité de filtre de primefaces. Certaines opérations peuvent être effectuées sur la table (par exemple, modifier). Le datable sera mis à jour après que l'utilisateur l'opération est effectuée à l'aide d'ajax.
Il met à jour la table directement et fonctionne bien, si je ne filtre pas le datatable, malheureusement pas si je l'utiliser et de le modifier.
C'est la façon dont ma datatable ressemble:
<p:dataTable id="dataTable" var="row"
value="#{bean.value}"
filteredValue="#{bean.filteredValue}"
paginator="true" rows="25" paginatorPosition="bottom"
rowKey="${row.id}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
editable="true">
et le Bouton qui déclenche la mise à jour
<p:commandButton value="Save"
actionListener="#{bean.save}"
update=":form"/>
- Êtes-vous à l'aide de la ligne ou de la cellule de l'édition? Pouvez-vous poster plus de code sur la table?
Vous devez vous connecter pour publier un commentaire.
Après la mise à jour datatable vous avez à s'en prévaloir du côté client
filter()
méthode.Pour PrimeFaces versions antérieures à la version 5, vous devez utiliser
filter()
méthode crée une autre opération de mise à jour. Si vous utilisezautoUpdate="true"
essayerautoUpdate="false"
et de mettre à jour manuellement de grogner. Vous pouvez également vous rendre collante. Mais rappelez-vousautoUpdate="true"
est pour de simples pages. Si vous avez besoin d'complète de contrôle à ne pas utiliserautoUpdate="true"
L'ajout de réponse pour Primefaces 5.x , depuis qu'ils ont changé la façon de l'appel de widget var:
Presque la même que Kerem Baydogan de réponse, mais avec un peu de modification :
Ou vous pouvez effacer les filtres à tous avec :
Pour la version de primefaces supérieur ou égal à 5, vous pouvez utiliser ce bloc de code, il fonctionne très bien
Si vous utilisez la version 5 de primefaces juste faire de la classe de données que rapresents la seule ligne de données, à implémente Serializable