Bonjour,

je veux implémenter l'extendeddatamodel de richfaces
de sorte que quand je supprime une ligne de ma grille je n'ai pas à recharger depuis ma base toutes mes autres lignes

Ma grille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<rich:dataTable id="myTable"  value="#{model}"					
					var="establishments"   >
 
<rich:column>
<f:facet name="header"><h:outputText value="Action" /></f:facet>
<a4j:commandButton id="editlink"  value="d"      action="#{model.test}" >                                                                                           
 
  <f:setPropertyActionListener value="#{establishments}" 
                         target="#{model.testAjax}" />
</a4j:commandButton>
chacune des lignes de la grille aura un bouton delete

mon bean model est déclaré dans mon faces-config et hérite de extendeddatamodel.

J'ai deux problèmes :
1) quand je clique sur un bouton delete il passe dans les méthodes walk de mon extendeddatamodel (bean model ds mon cas) donc mes lignes ont bien été sauvegardés grace a la méthode getSerializableModel de extendeddatamodel.

MAIS comme mon bean model est déclaré dans le faces-config il va recréer une instance de mon bean model et donc de mon extendeddatamodel, à ce moment il passe une dernière fois dans la méthode walk et mes lignes à ce moment sont logiquement null

2) je demande d'appeler la méthode test en cliquant sur delete, après le passage dans la méthode walk, il n'y va jamais, j'ai même essayé d'utiliser 2 beans différent, un pour l'extendeddatamodel et l'autre qui contient la méthode test, il passe jamais dedans

voici ma méthode walk dans mon bean "model"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
public void walk(FacesContext context, DataVisitor visitor, Range range,
			Object argument) throws IOException {
        int firstRow = ((SequenceRange)range).getFirstRow();
        int numberOfRows = ((SequenceRange)range).getRows();        
        if(wrappedKeys == null || wrappedKeys.isEmpty()){
        	 wrappedKeys = new ArrayList<Integer>();
 
	        for (Establishment item:establishmentDao.findAll()) {
	            wrappedKeys.add(item.getIdestablishmentEst());
	            wrappedData.put(item.getIdestablishmentEst(), item);
	            visitor.process(context, item.getIdestablishmentEst(), argument);
 
	    	 }
        }
    }
Je cherche donc un moyen de ne pas recharger les autres ligne de la grille normalement l'extended datamodel est fait pour ca, et aussi comment passer dans ma méthode test, merci d'avance