IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[PrimeFaces] dataTable cellEditor


Sujet :

JSF Java

  1. #1
    Provisoirement toléré
    Homme Profil pro
    Développeur JAVA JEE / PHP
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur JAVA JEE / PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 72
    Points
    72
    Par défaut [PrimeFaces] dataTable cellEditor
    Bonjour,

    J'ai du mal à récupérer les données sélectionnées dans un dataTable après modification.

    Voila le code de la page XHTML :

    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
    17
    18
    19
    <prime:dataTable var="ct" value="#{cityBean.citys}" id="tbl" editMode="cell"
    					paginator="true" rows="10" editable="true" widgetVar="citysTable">
     
    					<f:facet name="header">  
                			In-Cell Editing  
            			</f:facet>
    					<prime:ajax event="cellEdit" listener="#{cityBean.onCellEdit}"
    						update=":form:messages" />
    					<prime:column headerText="City" style="width:30%">
    						<prime:cellEditor>
    							<f:facet name="output">
    								<h:outputText value="#{ct.city}" />
    							</f:facet>
    							<f:facet name="input">
    								<prime:inputText value="#{ct.city}" style="width:100%" />
    							</f:facet>
    						</prime:cellEditor>
    					</prime:column>
    				</prime:dataTable>

    Le ManagedBean:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    @ManagedBean(name = "cityBean")
    @RequestScoped
    public class CityBean implements Serializable {
     
    	private City city;
    	private List<City> citys;
    	private CityService cityService;
     
    	public CityBean() {
    		this.city = new City();
    		cityService = new CityService();
    	}
     
    	public List<City> getCitys() {
    		citys = cityService.getAll();
    		System.out.println("size : " + citys.size());
    		return citys;
    	}
     
    	public City getcity() {
    		return city;
    	}
     
    	public void setCity(City city) {
    		this.city = city;
    	}
     
    	public void setCitys(List<City> citys) {
    		this.citys = citys;
    	}
     
    	public City getCity() {
    		return city;
    	}
     
    	public String onCreateAction() {
    		String etat = null;
    		cityService = new CityService();
    		FacesContext context = FacesContext.getCurrentInstance();
    		if (cityService.add(this.city)) {
     
    			this.city = new City();
    			context.addMessage(null, new FacesMessage(
    					"Réparation ajouté avec succé"));
    		} else {
    			context.addMessage(null, new FacesMessage(
    					FacesMessage.SEVERITY_ERROR, "Réparation non ajouté !",
    					null));
    		}
    		return null;
    	}
     
    	public String onUpdateAction() {
    		cityService = new CityService();
    		FacesContext context = FacesContext.getCurrentInstance();
    		City c = cityService.getById(this.city.getId());
    		if (cityService.update(c)) {
    			this.city = new City();
    		} else {
    			context.addMessage(null,
    					new FacesMessage(FacesMessage.SEVERITY_ERROR,
    							"Modification réussie !", null));
    		}
    		return "retourUpdate";
    	}
     
    	public String onDeleteAction() {
    		cityService = new CityService();
    		FacesContext context = FacesContext.getCurrentInstance();
    		if (cityService.delete(city)) {
    			this.city = new City();
    		} else {
    			context.addMessage(null, new FacesMessage(
    					FacesMessage.SEVERITY_ERROR, "City non supprimé !", null));
    		}
    		return null;
    	}
     
    	public void onEdit(RowEditEvent event) {
     
    //		DataTable o = (DataTable) event.getSource();
    		this.city = (City) event.getObject();
    		System.out.println("city = "+this.city.getCity());
    		FacesMessage msg = new FacesMessage("Car Edited", this.city.getCity());
    		FacesContext.getCurrentInstance().addMessage(null, msg);
    	}
     
    	public void onCancel(RowEditEvent event) {
    		FacesMessage msg = new FacesMessage("Car Cancelled",
    				((City) event.getObject()).getId() + "");
    		FacesContext.getCurrentInstance().addMessage(null, msg);
    	}
     
    	public void onCellEdit(CellEditEvent event) {  
            Object oldValue = event.getOldValue();  
            Object newValue = event.getNewValue();  
            System.out.println("old = "+oldValue);
            System.out.println("new = "+newValue);
            if(newValue != null && !newValue.equals(oldValue)) {  
                FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);  
                FacesContext.getCurrentInstance().addMessage(null, msg);  
            }  
        }  
    }

    Merci d'avance

  2. #2
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    Essayes de mettres cette méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    citys = cityService.getAll();
    Dans le PostConstruct
    Ce qui ne me tue pas me rend plus fort.

  3. #3
    Provisoirement toléré
    Homme Profil pro
    Développeur JAVA JEE / PHP
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur JAVA JEE / PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 72
    Points
    72
    Par défaut
    J'ai trouvé la solution il suffit juste de rajouter le test suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public List<City> getCitys() {
    		if (citys == null) {
    			citys = cityService.getAll();
    		}
    		return citys;
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/11/2018, 15h04
  2. PrimeFaces Datatable et RowEditListener
    Par geforce dans le forum JSF
    Réponses: 2
    Dernier message: 17/10/2013, 18h04
  3. Réponses: 2
    Dernier message: 21/12/2012, 11h28
  4. Réponses: 5
    Dernier message: 25/06/2012, 12h04
  5. PrimeFaces Datatable et RowEditListener
    Par allstar dans le forum JSF
    Réponses: 2
    Dernier message: 24/10/2011, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo