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 :

[dataTable] Tri et filtre ne fonctionnent pas


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut [dataTable] Tri et filtre ne fonctionnent pas
    Bonjour,

    J'ai une dataTable dans laquelle j'affiche des identités.
    J'aimerais non seulement pouvoir trier mais aussi filtre^r certaines colonnes.
    J'ai mis quelque chose en place en me référant au site primefaces.org mais aussi bien le tri que le filtre ne fonctionne pas.

    Qqun a-t-il une idée ?
    Voici la page :
    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
    105
    106
    107
    108
    109
    110
    <ui:composition template="../../secured/modele/template.xhtml"
    	xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:c="http://java.sun.com/jsp/jstl/core">
    	<ui:define name="contenu">
    		<h:form id="gestionIdentitesForm">
    			
    			<!-- <p:growl id="messages" life="2000" />  -->
    			
    			<!-- Dialogue de confirmation de suppression d'une identité -->
    			<p:dialog header="#{msg['ConfirmerLaSuppression']}" widgetVar="confDeleteDlg" resizable="false" id="confDelDlg"
                                showEffect="fade" hideEffect="fade" >
                	<p:outputLabel value="#{msg['EtesVousSurDeVouloirSupprimerCetteIdentite']}" />
                    <div align="center">
    	                <h:panelGrid id="display" columns="2" cellpadding="10">
    	                	<p:commandButton id="deleteButton" action="#{gestionIdentitesForm.supprimerIdentite}" oncomplete="PF('confDeleteDlg').hide()" 
    	                            update=":gestionIdentitesForm:identites, messages" value="#{msg['Oui']}" />
    	                	<p:commandButton id="cancelButton" onclick="PF('confDeleteDlg').hide()" value="#{msg['Non']}"/>
    	                </h:panelGrid>
                    </div>
                </p:dialog>
    			
    			<!-- Tableau d'affichage des identités -->
    			<h2>
    				<h:outputText value="#{msg['GestionDesIdentites']}" />
    			</h2>
    			
    			<p:dataTable 	id="identites"
    							value="#{gestionIdentitesForm.listIdentites}" 
    							var="identite" widgetVar="identiteTable" filteredValue="#{gestionIdentitesForm.listIdentitesFiltered}"							
                                                            emptyMessage="#{msg['AucuneIdentiteAAfficher']}" 
    							editable="false" editmode="row"
    							sortMode="multiple" rowKey="#{identite.id}" paginator="true" paginatorPosition="bottom"  
    							rows="10" style="margin-bottom:10px" 
    							paginatorTemplate=" {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    							rowsPerPageTemplate="10,20,50">
    							
    				<f:facet name="header">  
                		<p:outputPanel>
                			<div align="left">
                				<p:link outcome="saisirIdentite" value="# #{msg['AjouterUneIdentite']}" />
                    		</div>
                		</p:outputPanel>  
            		</f:facet>
    						
    				<p:column headerText="#{msg['ID']}" style="width:4%" rendered="#{gestionIdentitesForm.userSuperAdmin}">
    	         		 #{identite.id}
    	       		</p:column>
    	       		
    	       		<p:column headerText="#{msg['Type']}" style="width:3%">
    	          		#{identite.typePersonneCi.abrege}
    	        	</p:column>
    	       		
                  <p:column filterBy="nom" filterMatchMode="contains" sortBy="#{nom}" headerText="#{msg['Nom']}" style="width:15%">
    	          		#{identite.nom}
    	        	</p:column>
    				
    				<p:column sortBy="#{prenom}" headerText="#{msg['Prenom']}" style="width:15%">
    	          		#{identite.prenom}
    	        	</p:column>	        	
    	        	<p:column headerText="#{msg['RaisonSociale']}" sortBy="#{raisonSociale}" style="width:15%">
    	          		#{identite.raisonSociale}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Rue']}" style="width:10%">
    	          		#{identite.adressePrincipale.rueNumero}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Localite']}" style="width:10%">
    	          		<c:choose>
    	          			<c:when test="#{not empty identite.adressePrincipale.localite}">#{identite.adressePrincipale.localite}</c:when>
    						<c:otherwise>#{identite.adressePrincipale.codePostalLibre} #{identite.adressePrincipale.localiteLibre}</c:otherwise>	
    	          		</c:choose>
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelProf']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelProf}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelMobile']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelMobile}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelPrive']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelPrive}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Email']}" style="width:10%">
    	          		#{identite.adressePrincipale.email}
    	        	</p:column>
     	        	
    	        	<p:column headerText="#{msg['Actions']}" style="width:13%">
    	          		<p:link value="# #{msg['Modifier']}" outcome="saisirIdentite" >
                 			<f:param name="idIdentite" value="#{identite.id}" />
             	 		</p:link>
    					/
             	 		<p:commandLink value="# #{msg['Supprimer']}" onclick="PF('confDeleteDlg').show()" >
             	 			<f:setPropertyActionListener target="#{gestionIdentitesForm.selectedIdentite}" value="#{identite}"/>
             	 		</p:commandLink>
    	        	</p:column> 
    			</p:dataTable>
    			
    		 	<p:messages id="messages" autoUpdate="true" globalOnly="true" />
     		</h:form>
    	</ui:define>
    </ui:composition>
    Et le bean :
    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
     
    @ManagedBean(name = "gestionIdentitesForm")
    @ViewScoped
    public class GestionIdentitesForm implements Serializable {
     
    	private static final long serialVersionUID = 1L;
     
    	private List<Identite> listIdentites;
    	private List<Identite> listIdentitesFiltered;
    	private Identite selectedIdentite;
     
    	@EJB
    	private IdentiteService m_identiteService;
     
    	/**
             * Default Constructor
             */
    	public GestionIdentitesForm() {
    	}
     
    	public boolean isUserSuperAdmin() {
        	FacesContext context = FacesContext.getCurrentInstance();
            ExternalContext externalContext = context.getExternalContext();
            HttpSession session = ((HttpServletRequest) externalContext.getRequest()).getSession();
     
            Employe currentUser = (Employe) session.getAttribute("user");
     
            return currentUser != null && currentUser.isSuperAdmin();
        }
     
    	public List<Identite> getListIdentites() {
    		listIdentites = m_identiteService.getIdentiteList();
     
    		return listIdentites;
    	}
     
    	public void setListIdentites(List<Identite> listIdentites) {
    		this.listIdentites = listIdentites;
    	}
     
    	public List<Identite> getListIdentitesFiltered() {
    		return listIdentitesFiltered;
    	}
     
    	public void setListIdentitesFiltered(List<Identite> listIdentitesFiltered) {
    		this.listIdentitesFiltered = listIdentitesFiltered;
    	}
     
    	public void supprimerIdentite() {
    		try {
    			m_identiteService.deleteIdentite(selectedIdentite);
     
    			FacesContext.getCurrentInstance().addMessage(
    					null,
    					Messages.getMessage("LIdentiteAEteSupprimeeAvecSucces",
    							FacesMessage.SEVERITY_INFO, null));
    		} catch (Throwable e) {
    			FacesContext.getCurrentInstance().addMessage(
    					null,
    					new FacesMessage(Messages.getMessage("ImpossibleDeSupprimerLIdentite",
    							FacesMessage.SEVERITY_INFO, null).getDetail() + " : "));
     
    			FacesContext.getCurrentInstance().addMessage(
    					null, 
    					new FacesMessage(e.getCause().getCause().getMessage()));
    		}
    	}
     
    	public Identite getSelectedIdentite() {
    		return selectedIdentite;
    	}
     
    	public void setSelectedIdentite(Identite selectedIdentite) {
    		this.selectedIdentite = selectedIdentite;
    	}
    }
    Merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    salut,

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
     <p:column filterBy="#{identite.nom}" sortBy="#{identite.nom}" ...

  3. #3
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    Salut,

    Le tri fonctionne très bine maintenant, merci :-)

    Par contre le filtre ne fonctionne pas, en fait il n'y a pas de champ de saisie pour le filtre.
    Est-ce que je dois l'ajouter moi-même ? Il ne me semble pas qu'il y en ai un dans le showcase primefaces...

    Merci

  4. #4
    Membre éclairé
    Avatar de CPI_en_mousse
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 332
    Par défaut
    Salut,

    essaye en supprimant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    filteredValue="#{gestionIdentitesForm.listIdentitesFiltered}"
    de l'entête du tableau

  5. #5
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    Salut ,

    Ca ne marche pas non plus.
    Comme j'ai dis, il n'y a même pas de champ de saisie de la valeur à filtrer, je ne sais pas si c'est normal .... ?

  6. #6
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    j´ai mis le filtre sur le Id ainsi que le tri:

    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
    <p:dataTable 	id="identites"
    							value="#{gestionIdentitesForm.listIdentites}" 
    							var="identite" widgetVar="identiteTable" filteredValue="#{gestionIdentitesForm.listIdentitesFiltered}"							
                                                            emptyMessage="#{msg['AucuneIdentiteAAfficher']}" 
    							editable="false" editmode="row"
    							sortMode="multiple" rowKey="#{identite.id}" paginator="true" paginatorPosition="bottom"  
    							rows="10" style="margin-bottom:10px" 
    							paginatorTemplate=" {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    							rowsPerPageTemplate="10,20,50">
    							
    				<f:facet name="header">  
                		<p:outputPanel>
                			<div align="left">
                				<p:link outcome="saisirIdentite" value="# #{msg['AjouterUneIdentite']}" />
                    		</div>
                		</p:outputPanel>  
            		</f:facet>
    						
    				<p:column headerText="#{msg['ID']}" style="width:4%" rendered="#{gestionIdentitesForm.userSuperAdmin}"  footerText="contains" filterMatchMode="contains" filterBy="#{identite.id}">
    					 <h:outputText value="#{identite.id}" />
    	       		        </p:column>
    	       		
    	       		<p:column headerText="#{msg['Type']}" style="width:3%">
    	          		#{identite.typePersonneCi.abrege}
    	        	</p:column>
    	       		
                  <p:column filterBy="nom" filterMatchMode="contains" sortBy="#{nom}" headerText="#{msg['Nom']}" style="width:15%">
    	          		#{identite.nom}
    	        	</p:column>
    				
    				<p:column sortBy="#{prenom}" headerText="#{msg['Prenom']}" style="width:15%">
    	          		#{identite.prenom}
    	        	</p:column>	        	
    	        	<p:column headerText="#{msg['RaisonSociale']}" sortBy="#{raisonSociale}" style="width:15%">
    	          		#{identite.raisonSociale}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Rue']}" style="width:10%">
    	          		#{identite.adressePrincipale.rueNumero}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Localite']}" style="width:10%">
    	          		<c:choose>
    	          			<c:when test="#{not empty identite.adressePrincipale.localite}">#{identite.adressePrincipale.localite}</c:when>
    						<c:otherwise>#{identite.adressePrincipale.codePostalLibre} #{identite.adressePrincipale.localiteLibre}</c:otherwise>	
    	          		</c:choose>
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelProf']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelProf}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelMobile']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelMobile}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['NoTelPrive']}" style="width:10%">
    	          		#{identite.adressePrincipale.noTelPrive}
    	        	</p:column>
    	        	
    	        	<p:column headerText="#{msg['Email']}" style="width:10%">
    	          		#{identite.adressePrincipale.email}
    	        	</p:column>
     	        	
    	        	<p:column headerText="#{msg['Actions']}" style="width:13%">
    	          		<p:link value="# #{msg['Modifier']}" outcome="saisirIdentite" >
                 			<f:param name="idIdentite" value="#{identite.id}" />
             	 		</p:link>
    					/
             	 		<p:commandLink value="# #{msg['Supprimer']}" onclick="PF('confDeleteDlg').show()" >
             	 			<f:setPropertyActionListener target="#{gestionIdentitesForm.selectedIdentite}" value="#{identite}"/>
             	 		</p:commandLink>
    	        	</p:column> 
    			</p:dataTable>
    eric

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

Discussions similaires

  1. [AJAX] Filtre ne fonctionne pas avec IE
    Par beegees dans le forum AJAX
    Réponses: 2
    Dernier message: 12/05/2009, 10h32
  2. bouton filtre ne fonctionne pas
    Par Salsaboy60 dans le forum IHM
    Réponses: 4
    Dernier message: 18/02/2009, 16h16
  3. Réponses: 7
    Dernier message: 23/08/2008, 11h34
  4. Mon tri de date ne fonctionne pas bien :(
    Par rohstev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/07/2007, 10h58
  5. [VBA-Excel] Tri de listview ne fonctionne pas avec des nombres à virgule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2006, 15h32

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