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


#1

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


#2

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


#3
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 )

#4

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


#5

non c’est toujours pareille