2009-07-06 9 views
0

Je rencontre des problèmes lors de l'utilisation de selectBooleanCheckBox multiple dans plusieurs DataTables dans ui: repeat.selectBooleanCheckbox dans un DataTable in ui: repeat

Quelque chose comme ça

<ui:repeat var="f" value="#{mybean.values}"> 
    <rich:dataTable value="#{f.values}" var="v"> 
     <rich:column> 
      <h:selectBooleanCheckbox value="#{mybean.selected[v.id]}"/> 
     </rich:column> 
    </rich:dataTable> 
</ui:repeat> 

Dans le backing bean, dans la carte sélectionnée, je trouve les mauvaises ids.

Autre comportement étrange est que lorsque je trier la colonne en utilisant l'attribut sortBy, il trie toute la colonne rendue.

que j'ai trouvé le bug sur le JIRA

RichFaces JIRA

Si je le

<c:forEach /> 
tag

au lieu de

<ui:repeat /> 

est un peu mieux (pas de tri entre les tables, plus de valeurs sont exactes dans le backing bean), mais parfois c'est s jusqu'à tort.

Des idées?

Merci,

+0

Quels identifiants obtenez-vous (par exemple, est-ce le même)? – Damo

+0

Non, ce n'est pas le cas. Chaque rangée a un identifiant différent. Merci. –

Répondre

0

J'ai résolu l'ordre des valeurs, puisque je faisais un lien vers un ensemble. J'ai utilisé le SortedSet. Merci quand même.

1

Essayez d'utiliser le a4j:repeat.

J'ai souvent des problèmes à mettre à jour les valeurs sur le backend en utilisant Richfaces de ui:repeat (bien que normalement avec a4j:commandLink/commandButton).

EDIT: Et avez-vous un equals() et hashcode() bien définis pour la classe que vous ajoutez à la liste/ensemble?

+0

Merci beaucoup pour le conseil, malheureusement cela n'a pas résolu le problème. –

+0

Oui, je l'ai défini, mais le problème est dans richfaces, les valeurs dans le backing bean sont fausses. C'est plutôt un problème avec l'interaction du modèle de données étendu, je pense. –