Quand je modifie une ligne de mon tableau la ligne va en bas du tableau

bjr bsr quand je selectionne une ligne de mon tableau et que je modifie cette ligne la ligne modifie va directement se repositionner a la dernier ligne et l’ordre du tableau croissant des nombres du tableau n’est plus respecte voici ca

Bonjour,
Il faudrait partager un peu plus de code pour qu’on puisse voir d’où viendrait le problème.

voici mon controller vehicule

package controllers;

import entities.Categorie;
import entities.Vehicule;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.event.ActionEvent;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.context.RequestContext;
import sessions.VehiculeFacadeLocal;

/**
 *
 * @author ALEX-GOBE
 */
public class VehiculeControlleur implements Serializable{

 
 @EJB
  private VehiculeFacadeLocal vehiculeFacadeLocal;
  private List<Vehicule> listVehicule = new ArrayList<>();
  private Vehicule vehicule = new Vehicule();
  private String operation;
  private String msg;

    /**
     * Creates a new instance of VehiculeControlleur
     */
    public VehiculeControlleur() {
    }
  
    
@PostConstruct
    public void init(){
        listVehicule.clear();
//      vehicule.setIdcategorie(new Categorie());
        listVehicule.addAll(vehiculeFacadeLocal.findAll());
        vehicule.setCategorieid(new Categorie());
    }

        public void action(ActionEvent e) {
        CommandButton btn = (CommandButton) e.getSource();
        operation = btn.getWidgetVar();
        msg = "";
    }
    
    public void preparecreate(ActionEvent e) {
//        vehicule = new Vehicule();
        vehicule.setCategorieid(new Categorie());
        msg = "";
        action(e);
    }
    
    public void enregistrer(){
        
            try {
                
                vehiculeFacadeLocal.create(vehicule);
                RequestContext.getCurrentInstance().execute("PF('wv_vehicule').hide()");
                
        } catch (Exception e) {
            e.printStackTrace();
            msg = "Echec d'enregistrement du vehicule";
            
        }finally{
              init();  
            } 
 
    }
    
    public void modifier(){
        
        try {
             vehiculeFacadeLocal.edit(vehicule);
            msg = "voiture modifie avec succes";
            RequestContext.getCurrentInstance().execute("PF('wv_etudiant').hide()");
        } catch (Exception e) {
            e.printStackTrace();
            msg = "Echec de la modification";
        }finally{
 
            init();
        }
    }
    
    public void supprimer(){
        
        try {
            vehiculeFacadeLocal.remove(vehicule);
            msg = "voiture suprime avec succes";
            RequestContext.getCurrentInstance().execute("PF('wv_etudiant').hide()");
        } catch (Exception e) {
            e.printStackTrace();
            msg = "Echec de suppression";
        }finally{
            init();
        }
        
    }
    
    public void choixOperation(){
        
        switch(operation){
            case "ajouter":
                enregistrer();
                break;
            case "modifier":
                modifier();
                break;
            case "supprimer":
                supprimer();
                break;
        }
    }

    public VehiculeFacadeLocal getVehiculeFacadeLocal() {
        return vehiculeFacadeLocal;
    }

    public void setVehiculeFacadeLocal(VehiculeFacadeLocal vehiculeFacadeLocal) {
        this.vehiculeFacadeLocal = vehiculeFacadeLocal;
    }

    public List<Vehicule> getListVehicule() {
        return listVehicule;
    }

    public void setListVehicule(List<Vehicule> listVehicule) {
        this.listVehicule = listVehicule;
    }

    public Vehicule getVehicule() {
        return vehicule;
    }

    public void setVehicule(Vehicule vehicule) {
        this.vehicule = vehicule;
    }

    public String getOperation() {
        return operation;
    }

    public void setOperation(String operation) {
        this.operation = operation;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }


}

et ma vue vehicule.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <body>

        <ui:composition template="./index.xhtml">

            <ui:define name="content">
                <h:form id="form">
                    <center>
                        <h:outputText value="#{vehiculeControlleur.msg}" style="color: green;"></h:outputText>
                    </center>
                    <p:separator></p:separator>

                    <h1><h:outputText value="List vehicule"/></h1>
                    <p:dataTable selectionMode="single" selection="#{vehiculeControlleur.vehicule}" rowKey="#{item.idvehicule}" id="table" value="#{vehiculeControlleur.listVehicule}" var="item">
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="N° vehicule"/>
                            </f:facet>
                            <h:outputText value="#{item.idvehicule}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Marque"/>
                            </f:facet>
                            <h:outputText value="#{item.marque}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Nbreplace"/>
                            </f:facet>
                            <h:outputText value="#{item.nbreplace}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Etat"/>
                            </f:facet>
                            <h:outputText value="#{item.etat}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Carburant"/>
                            </f:facet>
                            <h:outputText value="#{item.carburant}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Immat"/>
                            </f:facet>
                            <h:outputText value="#{item.immat}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Accidente"/>
                            </f:facet>
                            <h:outputText value="#{item.accidente}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Categorie"/>
                            </f:facet>
                            <h:outputText value="#{item.categorieid.nomcategorie}"/>
                        </p:column>
                    </p:dataTable>
                    <p:separator></p:separator>
                    
                    <center>
                    <h:panelGrid columns="4">
                        <p:commandButton oncomplete="PF('wv_vehicule').show()" widgetVar="ajouter" partialSubmit="true"
                                         actionListener="#{vehiculeControlleur.preparecreate}" update=":form_vehicule:fm_vehicule" value="Ajouter"/>
                        <p:commandButton oncomplete="PF('wv_vehicule').show()" widgetVar="modifier" partialSubmit="true"
                                         actionListener="#{vehiculeControlleur.action}" update=":form_vehicule:fm_vehicule" value="Modifier"/>
                        <p:commandButton oncomplete="PF('wv_vehicule').show()" widgetVar="supprimer" partialSubmit="true"
                                         actionListener="#{vehiculeControlleur.supprimer()}" 
                                         onclick="return confirm('voulez vous vraiment supprimer ?')" update=":form_vehicule:fm_vehicule" value="Supprimer"/>
                        <p:commandButton oncomplete="PF('wv_vehicule').show()" widgetVar="add" partialSubmit="true"
                                                     update="" value="Imprimer"/>
                    </h:panelGrid>
                </center>
                </h:form>
                
                

                <h:form id="form_vehicule">
                    <p:dialog id="fm_vehicule" widgetVar="wv_vehicule">
                         <f:facet name="header">
                             <h:outputText value="Ajouter/Editer un vehicule"/>
                         </f:facet>
                    
                    <h1><h:outputText value="Create/Edit"/></h1>
                    <p:panelGrid id="inputs" columns="2">
                     
                        <p:outputLabel value="Marque:" for="marque" />
                        <p:inputText id="marque" value="#{vehiculeControlleur.vehicule.marque}" title="Marque" />
                        <p:outputLabel value="Nbreplace:" for="nbreplace" />
                        <p:inputText id="nbreplace" value="#{vehiculeControlleur.vehicule.nbreplace}" title="Nbreplace" />
                        <p:outputLabel value="Etat:" for="etat" />
                        <p:inputText id="etat" value="#{vehiculeControlleur.vehicule.etat}" title="Etat" />
                        <p:outputLabel value="Carburant:" for="carburant" />
                        <p:inputText id="carburant" value="#{vehiculeControlleur.vehicule.carburant}" title="Carburant" />
                        <p:outputLabel value="Immat:" for="immat" />
                        <p:inputText id="immat" value="#{vehiculeControlleur.vehicule.immat}" title="Immat" />
                        <p:outputLabel value="Accidente:" for="accidente" />
                        <p:inputText id="accidente" value="#{vehiculeControlleur.vehicule.accidente}" title="Accidente" required="true" requiredMessage="The Accidente field is required."/>


                        <p:outputLabel value="categorie:" for="categorie" />
                        <p:selectOneMenu id="categorie" value="#{vehiculeControlleur.vehicule.categorieid.idcategorie}"
                                         required="true" requiredMessage="The Idcategorie field is required.">
                            <f:selectItems value="#{categorieController.listcategorie}" var="categorie"
                                           itemLabel="#{categorie.nomcategorie}" itemValue="#{categorie.idcategorie}" />
                        </p:selectOneMenu>
                    </p:panelGrid>
                    <f:facet name="footer">
                            <center>
                        <p:commandButton  
                            actionListener="#{vehiculeControlleur.choixOperation()}" update="inputs,:form:table"
                            value="Enregistrer"></p:commandButton>
                            </center>
                    </f:facet>
                    
                   </p:dialog>
                </h:form>

            </ui:define>

        </ui:composition>

    </body>
</html>

 En passant j'utilise JSF (je ne sais pas trop comment mettre le code la en couleur comme dans les autres site )

et quand tu redémarre l’application, c’est dans le bon ordre?

non c’est toujours pareille

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s