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 :

Filter avec Combobox


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Par défaut Filter avec Combobox
    salut tout le monde,

    voila mon datatable :

    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
     
    <rich:dataTable value="#{projet.projetItems}" id="table" var="item" rules="all" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rows="3" reRender="ds">
     
        <rich:column filterBy="#{projet[items.id]}" filterEvent="onkeyup">
             <f:facet name="header">             
                 <h:outputText value="ID" />
             </f:facet>                       
             <h:outputText value="#{item.id}"  />
         </rich:column>
     
        <rich:column filterBy="#{item.nom}" filterEvent="onkeyup">
            <f:facet name="header">
                 <h:outputText value="nom" />
             </f:facet>
             <h:outputText value="#{item.nom}" />
         </rich:column>
     
        <f:facet name="footer">
                    <rich:datascroller id="ds"></rich:datascroller>
        </f:facet>
     
     </rich:dataTable>
    j'ai utilisé filterEvent et filterBy et ça marche trés bien, sauf que je veux au lieu de filtrer en utilisant une zone text, utiliser un combobox.

    je travail avec jsf v 1.2
    netbeans 6.8
    et hibernat 3.2.5

    merci d'avance.

  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
    tu peux utiliser l'external filtering avec dataTable comme décrit sur le site de Richfaces.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Par défaut
    tout d'abord merci pour le feedback .

    j'ai essayé de faire l'external filter mais ça marche pas, il donne aucune erreur mais aucune action , voila le code :

    page list.jsp

    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
     
    <rich:dataTable value="#{projet.projetItems}" id="table" var="item" rules="all" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rows="3" reRender="ds">
     
        <rich:column filterBy="#{item.id}" filterEvent="onkeyup">
             <f:facet name="header">             
                 <h:outputText value="ID" />
             </f:facet>                       
             <h:outputText value="#{item.id}"  />
         </rich:column>
     
        <rich:column id="nom" filterMethod="#{projet.methodFilterNom}"
                     filterValue="#{projet.filterNom}">
    		<f:facet name="header">                    
                        <h:selectOneMenu value="#{projet.filterNom}">
                                <f:selectItems value="#{projet.projetItemsAvailableSelectOne}" />
    				<a4j:support event="onchange" reRender="table" />
    		    </h:selectOneMenu>
    		</f:facet>
     
    		<h:outputText value="#{item.nom}" />
         </rich:column>
     
        <f:facet name="footer">
                    <rich:datascroller id="ds"></rich:datascroller>
        </f:facet>
     
     </rich:dataTable>
    voila le code que j'ai ajouté dans controller.java

    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
     
    	private String filterNom = "";
     
             public String getFilterNom() {
                 return filterNom;
             }
     
             public void setFilterNom(String filterValue) {
                 this.filterNom = filterValue;
             }
     
    	public boolean methodFilterNom(Object current) {
    		Projet bean = (Projet) current;
    		if (filterNom.length() == 0) {
    			return true;
    		}
    		if (bean.getNom() != null && bean.getNom().toLowerCase().startsWith(filterNom.toLowerCase())) {
    			return true;
    		} else {
    			return false;
    		}
    	}

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Par défaut
    Si je ne me trompe pas, l'Object current n'est pas le bean mais la classe qui est utilisé pour chaque ligne de ton rich:datatable. Dans ton cas il s'agit de la classe de ta variable item (projet.projetItems)
    Regarde en mode débug que current est bien de type Project

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 15
    Par défaut
    je suis encore débutante en jsf et je comprend pas bien c'est quoi l'erreur exactement, voila la log me donne ça :

    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
     
    22 juil. 2010 15:43:18 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
    org.apache.jasper.el.JspPropertyNotFoundException: /projet/List.jsp(78,4) '#{projet.filterNom}' Property 'filterNom' not found on type classes.ProjetController
            at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:104)
            at org.richfaces.component.UIColumn.getFilterValue(UIColumn.java:159)
            at org.richfaces.component.UIColumn.getFilterField(UIColumn.java:92)
            at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:95)
            at org.ajax4jsf.component.UIDataAdaptorBase.getExtendedDataModel(UIDataAdaptorBase.java:621)
            at org.ajax4jsf.component.UIDataAdaptorBase.setRowKey(UIDataAdaptorBase.java:339)
            at org.richfaces.renderkit.AbstractTableRenderer.encodeTableStructure(AbstractTableRenderer.java:138)
            at org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:140)
            at org.richfaces.renderkit.html.DataTableRenderer.doEncodeBegin(DataTableRenderer.java:128)
            at org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:100)
            at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
            at javax.faces.component.UIData.encodeBegin(UIData.java:879)
            at org.ajax4jsf.component.UIDataAdaptorBase.encodeBegin(UIDataAdaptorBase.java:1225)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
            at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
            at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
            at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
            at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
            at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
            at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
            at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
            at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
            at java.lang.Thread.run(Thread.java:595)

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 42
    Par défaut
    Quelle est la ligne 78 de List.jsp ?(stp met les quelques lignes avant et apres en différenciant la 78).

    Sinon pourquoi avoir mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filterValue="#{projet.filterNom}"
    J'ai déjà fait du external filtering (pas avec des combobox par contre...) et je n'utilise pas du tout cet attribut.
    Supposition : C'est peut être cette ligne là qui te pose problème...

Discussions similaires

  1. [XL-2010] Filter avec Combobox.value
    Par bibbip35 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/10/2014, 22h59
  2. état avec combobox.
    Par JauB dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 28/02/2006, 13h56
  3. [vb.net]Boite de dialogue avec combobox
    Par le Daoud dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/12/2005, 12h53
  4. [VB.NET] Probleme avec ComboBox
    Par Aspic dans le forum VB.NET
    Réponses: 5
    Dernier message: 20/11/2005, 12h37
  5. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55

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