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 :

Sélection dans un dataTable


Sujet :

JSF Java

Vue hybride

ulysse031 Sélection dans un dataTable 09/09/2011, 15h28
bonano Je ne vois pas l'interet... 09/09/2011, 16h33
ulysse031 j'ai essayé de selectionné la... 10/09/2011, 02h32
ulysse031 voila j'essaie de m'avancer ... 10/09/2011, 15h56
ulysse031 bonsoir est ce que quelqu'un... 11/09/2011, 20h15
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut Sélection dans un dataTable
    Bonjour,

    je n'arrive pas a récupérer la ligne active d'une dataTable et afficher continue de cette ligne sur <h:inputText id="myInput"></h:inputText> en cliquan sur le bouton
    J'ai essayer de comprendre les 3 méthode de la FAQ mais sans succès.

    Merci de votre aide !!

    je vous montre
    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
     
    	<rich:dataTable value="#{beansearch.perInfoAll}" var="item" rows="5" width="600px" style=" width : 408px;"   >  
      <f:facet name="header">
                <h:outputText value="Sorting Example"/>
            </f:facet>
        <rich:column  >
              <f:facet name="header">Name</f:facet>
              <h:outputText value="#{item.username}"/>
         </rich:column>
       <rich:column  >
               <f:facet name="header">Surname</f:facet>
               <h:outputText value="#{item.jobposition}"/>
         </rich:column>
    </rich:dataTable>
    <a4j:commandButton action="plus" value="++++++"   ></a4j:commandButton>
    <h:inputText id="myInput"></h:inputText>

    et mon 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
     
    import java.util.logging.Level;
    import java.util.logging.Logger;
     import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
     
     
    import java.sql.*;
     
    public class Beansearch extends HttpServlet {
     
     
    private List<perInfo> perInfoAll = new ArrayList();
     
    public List<perInfo> getPerInfoAll() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
    	try { 
    		Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    		 String serverName = "localhost";
    		    String mydatabase = "test";
    		    String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
    			 String user = "root"; 
     
    	     String pass = "mus";
     
     
    	     java.sql.Connection connection = DriverManager.getConnection(url, user, pass);
    	     Statement instruction = (com.mysql.jdbc.Statement) ((java.sql.Connection) connection).createStatement();
     
     
    			     String sql = "  select  * from test.departement     " ;    
    					ResultSet resultat  = (ResultSet) instruction.executeQuery(sql);
    				 	while(resultat.next()){
     
    						String num=resultat.getString("nom").toString();
    						perInfoAll.add(new perInfo(resultat.getString(1),resultat.getString(2)));
     
    					}
            //session.close();
        }catch (SQLException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
     
    	}
        return perInfoAll;
    	}
     
     
     
    public void setPerInfoAll(List<perInfo> perInfoAll) {
    	this.perInfoAll = perInfoAll;
    }
     
     
    }
    et
    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
     
     
    public class perInfo {
     
    private String username;
    private String jobposition;
     
     
    public perInfo(String username,String jobposition) {
    this.username = username;
    this.jobposition = jobposition;
     
     
    }
     
    public String getusername() {
    return username;
    }
     
    public String getjobposition() {
    return jobposition;
    }
     
    public void setJobposition(java.lang.String jobposition) {
    		this.jobposition = jobposition;
    	}
     
    public void setUsername(java.lang.String username) {
    		this.username = username;
    	}
    }

  2. #2
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par ulysse031 Voir le message
    et mon bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class Beansearch extends HttpServlet {
    ...
    Je ne vois pas l'interet d'heriter ton bean de httpServlet, c'est de JSF que tu fais et pas des servlets...

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    j'ai essayé de selectionné la ligne alors j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a4j:support event="onRowClick" actionListener="#{item.selectionChanged}" />
    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
     
    <rich:dataTable value="#{beansearch.perInfoAll}"  rowClasses="row1, row2" id="taskList" rows="4"
     
    columnClasses="50,100,100,100" onRowMouseOver="this.style.backgroundColor='#B5F3FB'"
     
    onRowMouseOut="this.style.backgroundColor='#{a4jSkin.rowBackgroundColor}'"
     
    	var="item"   width="600px" style=" width : 408px;"   >  
    <a4j:support event="onRowClick" actionListener="#{item.selectionChanged}" /> 	
     
      <f:facet name="header">
                <h:outputText value="Sorting Example"/>
            </f:facet>
        <rich:column  >
              <f:facet name="header">Name</f:facet>
              <h:outputText value="#{item.username}"/>
         </rich:column>
       <rich:column  >
               <f:facet name="header">Surname</f:facet>
               <h:outputText value="#{item.jobposition}"/>
         </rich:column>
     
     
    </rich:dataTable>
    mais pour voir si la ligne est selectionné

    ajouté methode dans la classe 'Beansearch'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void selectionChanged(ActionEvent event) {   
    System.out.println("rowSelected");         
    }
    mais message n'est pas affiché

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    voila j'essaie de m'avancer

    j'ai créer une classe inserer et dans cette classe j'ai essayé de récupérer la table et l'index de la ligne mais sans succé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a4j:support event="onRowClick" actionListener="#{inserer.test1}" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class inserer {
    public void test1(ActionEvent evt) {
    	   HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource());
        int index = table.getRowIndex();
      }
    }
    message d'erreur
    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
     
    GRAVE: Received 'java.lang.NullPointerException' when invoking action listener '#{inserer.test1}' for component 'j_id3'
    10-sept.-2011 15:54:17 javax.faces.event.MethodExpressionActionListener processAction
    GRAVE: java.lang.NullPointerException
    	at inserer.test1(inserer.java:304)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
    	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
    	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)
    	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:372)
    	at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
    	at org.ajax4jsf.component.UIDataAdaptorBase.broadcast(UIDataAdaptorBase.java:1387)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
    	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
    	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	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:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    bonsoir est ce que quelqu'un a une idée merci

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    je coince est ce que quelqu'un à une idée merci

Discussions similaires

  1. Sélection de ligne dans une DataTable
    Par ruda.tom dans le forum JSF
    Réponses: 9
    Dernier message: 09/03/2007, 21h07
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43
  4. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19
  5. Réponses: 2
    Dernier message: 20/02/2004, 08h47

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