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 :

Richfaces datatable filterby date


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut Richfaces datatable filterby date
    Bonjour,

    J'ai crée une datatable avec 3 colonnes et j'ai mis sur chacune une sortBy et un filterBy.
    Tout fonctionne correctement sauf le filterBy sur la colonne contenant des dates: le filtre se fait sur le String issu de la date "1976-09-16 15:00:00.0" c'est à dire qu'on ne peut filtrer que en tapant l'année d'abord.
    Le sortBy fait, quand à lui, bien le tri sur des dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <rich:column sortBy="#{plongee.dtimmersion}" filterBy="#{plongee.dtimmersion}" filterEvent="onkeyup">
       <f:facet name="header">
          <h:outputText value="#{msg['plongee.recherche.date']}" />
       </f:facet>										
       <h:commandLink action="#{plongeeCtrl.voirDetailPlongee}">
          <h:outputText value="#{plongee.dtimmersion}">
             <f:convertDateTime type="both" timeZone="Pacific/Noumea"
    	    pattern="#{msg['FORMAT_DATE']}" />
          </h:outputText>
       </h:commandLink>
    </rich:column>
    Sur l'exemple Richfaces, ils n'ont pas l'air de passer de converter ou autre:
    http://livedemo.exadel.com/richfaces...del&cid=314824

    Quelqu'un pourrait m'expliquer ce comportement et m'aider à filtrer par date ?

    Merci d'avance,
    Sylvie

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    ça marche pour moi, le converter est nécessaire pour afficher la date.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut Malheureusement
    Je ne vois aucune raison pour que le filterBy ne marche pas, si cela fonctionne chez toi c'est qu'il doit y avoir un bug dans mon code et je n'arrive pas à le trouver.
    Est-ce que cela peut avoir un rapport avec les balises que j'utilise ? Mon tableau est dans une balise <h:form> qui est dans une <f:view> ?
    J'ai déjà eu des problèmes avec une mauvaise utilisation des différents types de balises notamment avec les a4j, mais je n'en utilise pas ici.

    Voici le code complet (sauf header, footer) de ma 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
     
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
    <%@taglib uri="http://richfaces.org/rich" prefix="rich"%>
     
    <f:view locale="#{langueCtrl.locale}">
    	<f:loadBundle basename="nc.ird.lagplon.messages.messages" var="msg" />
    	<jsp:include page="../../header.jsp" />
     
    	<h:form id="ariane">
    			<h:outputText value=" >> " />
    		    <h:outputLink value="#{facesContext.externalContext.requestContextPath}/_home.faces">
    		        <h:outputText value="#{msg['header.accueil']}"/>
    		    </h:outputLink>
    		    <h:outputText value=" > " />
    		    <h:commandLink action="indexScientifiques">
    		        <h:outputText value="#{msg['home.dataAdmin.title']}"/>
    		    </h:commandLink>
    		    <h:outputText value=" > " />
    		    <h:outputText value="#{msg['index.recherchePlongee']}" />
    	</h:form>
     
    	<h:form id="corps">
     
     
    		<div id="tableau" class="auto">
    			<rich:dataTable id="data" value="#{plongeeCtrl.model.listePlongeesLagplon}" var="plongee"
    				styleClass="auto" rows="25">
    				<f:facet name="header">
    					<rich:columnGroup>
    						<rich:column colspan="3">
    							<h:outputText value="#{msg['plongee.recherche.titre']}"></h:outputText>
    						</rich:column>
    					</rich:columnGroup>
    				</f:facet>
     
    				<rich:column sortBy="#{plongee.dtimmersion}" filterBy="#{plongee.dtimmersion}" filterEvent="onkeyup">
    					<f:facet name="header">
    						<h:outputText value="#{msg['plongee.recherche.date']}" />
    					</f:facet>										
    					<h:commandLink action="#{plongeeCtrl.voirDetailPlongee}">
    						<h:outputText value="#{plongee.dtimmersion}">
    							<f:convertDateTime type="both" timeZone="Pacific/Noumea"
    								pattern="#{msg['FORMAT_DATE']}" />
    						</h:outputText>
    						<f:param name="idimmersion" value="#{plongee.idimmersion}" />
    					</h:commandLink>
    				</rich:column>
    				<rich:column sortBy="#{plongee.idstation}" filterBy="#{plongee.idstation}" filterEvent="onkeyup">
    					<f:facet name="header">
    						<h:outputText value="#{msg['plongee.recherche.station']}" />
    					</f:facet>
    					<h:commandLink action="#{stationCtrl.voirDetailStation}">
    						<h:outputText value="#{plongee.idstation}" />
    						<f:param name="idstation" value="#{plongee.idstation}" />
    					</h:commandLink>
    				</rich:column>
    				<rich:column sortBy="#{plongee.navire}" filterBy="#{plongee.navire}" filterEvent="onkeyup">
    					<f:facet name="header">
    						<h:outputText value="#{msg['plongee.recherche.navire']}" />
    					</f:facet>
    					<h:outputText id="plongee" value="#{plongee.navire}" />
    				</rich:column>
     
    				<f:facet name="footer">
    					<rich:datascroller for="data" renderIfSinglePage="false">
    					</rich:datascroller>
    				</f:facet>
    			</rich:dataTable>			
    		</div>
    		<%-- Lien Retour --%>
    		<div  id="lien-retour">
    			<h:outputLink value="./indexScientist.faces">
    				<h:outputText value="#{msg['admin.retour']}" />
    			</h:outputLink>
    		</div>
    	</h:form>
    	<jsp:include page="../../footer.jsp" />
    </f:view>
    Cela fait maintenant plusieurs semaines que j'ai ce bug sans réussir à comprendre ce qui ne va pas, j'utilise jsf 1.2 et richfaces 3.3.2 (je viens de changer de version de richfaces et le bug existait avant aussi).

    Toute suggestion est la bienvenue,
    merci
    Sylvie

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par kikifiat Voir le message
    le filtre se fait sur le String issu de la date "1976-09-16 15:00:00.0" c'est à dire qu'on ne peut filtrer que en tapant l'année
    Si tu veux filtrer par rapport en tapant le jour d'abord, il faut modifier le pattern du converter. tu as essayé d'afficher la date 16-09-1976 .. et tester le filtre?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut Exemple richfeaces
    Merci pour ta réponse,

    Effectivement j'ai pensé à changer le pattern de la date, mais ça ne change pas le fait que le filter se fait sur un objet String alors que sur l'exemple Richfaces il se fait clairement sur un objet date.

    http://livedemo.exadel.com/richfaces...del&cid=314824

    C'est le comportement que je voudrais reproduire.

    En attendant de trouver je mettrais un pattern.

    Merci
    Sylvie

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    L'exemple utilise le converter de seam: org.jboss.seam.ui.EntityConverter

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

Discussions similaires

  1. RichFaces : Datatable et menu contextuel + clic droit
    Par sebastiens57 dans le forum JSF
    Réponses: 3
    Dernier message: 03/06/2009, 09h41
  2. [Richfaces] DataTable et date
    Par raff87 dans le forum JSF
    Réponses: 2
    Dernier message: 19/05/2009, 10h20
  3. JSF Richfaces datatable
    Par seddik_saber dans le forum JSF
    Réponses: 2
    Dernier message: 16/09/2008, 11h42
  4. [RichFaces]columns + filterBy + SortBy
    Par maVariable dans le forum JSF
    Réponses: 1
    Dernier message: 29/07/2008, 17h39
  5. Réponses: 1
    Dernier message: 07/07/2008, 10h58

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