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] extendedDatatable filterEvent ne marche pas


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 7
    Par défaut [RichFaces] extendedDatatable filterEvent ne marche pas
    Bonjour,
    Je développe une appli web avec:
    Richfaces 3.3.3.Final
    JSF 1.2

    Je rencontre un problème quand à l'utilisation du composant <rich:extendedDataTable/>. Mon problème est que je veux rajouter des champs de filtre sur chacune de mes colonnes, par contre quand je regarde le code HTML généré pour l'input text du filtre j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="users-form:users-datatable:firstnamefsp" name="users-form:users-datatable:firstnamefsp" class="rich-filter-input">
    alors que celui de la démo de richfaces se présente comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onkeyup="A4J.AJAX.Submit('form',event,{'oncomplete':function(request,event,data){var element = request.form.elements['form:table:col_2fsp'];if (!element) {element = document.getElementById('form:table:col_2fsp')}if (element) {element.focus();element.value = element.value;}},'similarityGroupingId':'form:table','parameters':{'form:table':'fsp'} } )" onclick="Event.stop(event);" class="rich-filter-input" name="form:table:col_2fsp" id="form:table:col_2fsp">
    On voit donc clairement que dans mon code (généré), il n'y a pas l'évenement onkeyup=...
    Et pourtant mon code semble être semblabe à celui de la démo.

    Voici le contenu de mes fichiers:
    web.xml
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    	<display-name>SIRH-WEB</display-name>
    	<context-param>
    		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    		<param-value>server</param-value>
    	</context-param>
    	<context-param>
    		<param-name>javax.faces.application.CONFIG_FILES</param-name>
    		<param-value>/WEB-INF/faces-config.xml</param-value>
    	</context-param>
    	<context-param>
    		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    		<param-value>.xhtml</param-value>
    	</context-param>
    	<!-- Richfaces Configuration-->
    	<context-param>
    		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
    		<param-value>com.sun.facelets.FaceletViewHandler</param-value>
    	</context-param>
    	<context-param>
    		<param-name>org.richfaces.SKIN</param-name>
    		<param-value>blueSky</param-value>
    	</context-param>
    	<!-- Making the RichFaces skin spread to standard HTML controls -->
    	<context-param>
    		<param-name>org.richfaces.CONTROL_SKINNING</param-name>
    		<param-value>enable</param-value>
    	</context-param>
    	<!--
    		<context-param>
    		<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
    		<param-value>true</param-value> </context-param>
    	-->
    	<!--
    		<context-param>
    		<param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name>
    		<param-value>true</param-value> </context-param>
    	-->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:sirh/config/applicationContext.xml
            </param-value>
    	</context-param>
    	<session-config>
    		<session-timeout>15</session-timeout>
    	</session-config>
    	<listener>
    		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    	</listener>
    	<listener>
    		<listener-class>com.npd.sirh.web.listener.SirhListener</listener-class>
    	</listener>
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    	<filter>
    		<display-name>RichFaces Filter</display-name>
    		<filter-name>richfaces</filter-name>
    		<filter-class>org.ajax4jsf.Filter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>richfaces</filter-name>
    		<servlet-name>Faces Servlet</servlet-name>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>INCLUDE</dispatcher>
    	</filter-mapping>
    	<filter>
    		<filter-name>SessionTimeoutFilter</filter-name>
    		<filter-class>com.npd.sirh.web.filters.SirhFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>SessionTimeoutFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
    	<login-config>
    		<auth-method>BASIC</auth-method>
    	</login-config>
    </web-app>
    editUser.xhtml ==> qui contient le composant extendedDataTable
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:rich="http://richfaces.org/rich"
    	xmlns:a4j="http://richfaces.org/a4j">
     
    <ui:composition template="../templates/content-template.xhtml">
    	<ui:define name="content-title">
    		Edit user
    <link href="../../assets/css/dashboard-template.css" rel="stylesheet"
    			type="text/css" />
    	</ui:define>
    	<ui:define name="content-body">
    		<h:form>
    			<rich:toolBar id="edit-user-toolbar" itemSeparator="disc">
    				<rich:toolBarGroup id="edit-group-add">
    					<h:graphicImage id="add-user-icon"
    						value="../assets/img/toolbar/new-document.png" />
    					<h:outputLabel value="Add user" for="add-user-icon" />
    				</rich:toolBarGroup>
    				<rich:toolBarGroup id="edit-group-edit">
    					<h:graphicImage id="edit-user-icon"
    						value="../assets/img/toolbar/modif.png" />
    					<h:outputLabel value="Edit user" for="edit-user-icon" />
    				</rich:toolBarGroup>
    				<rich:toolBarGroup id="edit-group-remove">
    					<h:graphicImage id="remove-user-icon"
    						value="../assets/img/toolbar/delete-document.png" />
    					<h:outputLabel value="Remove user" for="remove-user-icon" />
    				</rich:toolBarGroup>
    			</rich:toolBar>
    		</h:form>
    		<rich:spacer height="30px">
    		</rich:spacer>
     
    		<div align="center"><h:form id="users-form">
    			<rich:extendedDataTable id="users-datatable"
    				noDataLabel="No user found !" sortMode="single"
    				value="#{usersUI.users}" var="user" width="450px" height="300px"
    				selectionMode="single">
    				<rich:column filterBy="#{user.firstName}" filterEvent="onkeyup"
    					width="150px" sortable="true" sortBy="#{user.firstName}"
    					label="First name" id="firstname">
    					<f:facet name="header">
    						<h:outputText value="First name" />
    					</f:facet>
    					<h:outputText value="#{user.firstName}" />
    				</rich:column>
     
    				<rich:column filterEvent="onkeyup" filterBy="#{user.lastName}"
    					sortBy="#{user.lastName}" width="150px" sortable="true"
    					label="Last name" id="lastname">
    					<f:facet name="header">
    						<h:outputText value="Last name" />
    					</f:facet>
    					<h:outputText value="#{user.lastName}" />
    				</rich:column>
    				<rich:column filterEvent="onkeyup" filterBy="#{user.role}"
    					sortBy="#{user.role}" width="150px" sortable="true" label="Role"
    					id="role">
    					<f:facet name="header">
    						<h:outputText value="Role" />
    					</f:facet>
    					<h:outputText value="#{user.role}" />
    				</rich:column>
     
    				<f:facet name="footer">
     
    					<rich:datascroller for="users-datatable">
    					</rich:datascroller>
    				</f:facet>
    			</rich:extendedDataTable>
    		</h:form></div>
    	</ui:define>
    </ui:composition>
     
    </html>
    mon mbean
    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
    public class UsersUI {
     
    	private User selectedUser;
    	private List<User> users;
    	private int usersSize;
    	private String state;
     
    	/**
             * @param selectedUser
             *            the selectedUser to set
             */
    	public void setSelectedUser(User selectedUser) {
    		this.selectedUser = selectedUser;
    	}
     
    	/**
             * @return the selectedUser
             */
    	public User getSelectedUser() {
    		return selectedUser;
    	}
     
    	/**
             * @param users
             *            the users to set
             */
    	public void setUsers(List<User> users) {
    		this.users = users;
    	}
     
    	/**
             * @return the users
             */
    	public List<User> getUsers() {
    		if (users == null) {
    			users = new ArrayList<User>();
    			UserService userService = (UserService) SpringApplicationContext
    					.getBean("userServiceImpl");
    			users = userService.getAllUsers();
    		}
    		return users;
    	}
     
    	/**
             * @return the usersSize
             */
    	public int getUsersSize() {
    		return users.size();
    	}
     
    	/**
             * @param state
             *            the state to set
             */
    	public void setState(String state) {
    		this.state = state;
    	}
     
    	/**
             * @return the state
             */
    	public String getState() {
    		return state;
    	}
     
    	/**
             * @param usersSize
             *            the usersSize to set
             */
    	public void setUsersSize(int usersSize) {
    		this.usersSize = usersSize;
    	}
    }
    Je rappel que je n'ai aucun message d'erreur, le seul problème est que lors que j'entre du texte dans les champs de filtre il ne se passe rien (ce qui est normal) vu le code HTML généré.

    Merci de me répondre si vous êtes expert ou plus expérimenté.

  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 as oublié filterBy dans la première colonne.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 7
    Par défaut
    Merci de ta réponse rapide.
    Par contre le filterBy y est bien pour chacune de mes 3 colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:column filterBy="#{user.firstName}" filterEvent="onkeyup"
    					width="150px" sortable="true" sortBy="#{user.firstName}"
    					label="First name" id="firstname">

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

Discussions similaires

  1. TabPanel RichFaces ne marche pas
    Par maserati dans le forum Frameworks Web
    Réponses: 10
    Dernier message: 03/01/2012, 10h53
  2. Réponses: 19
    Dernier message: 22/07/2010, 17h40
  3. [RichFaces]DataScroller ne marche pas
    Par Hanoni dans le forum JSF
    Réponses: 6
    Dernier message: 07/07/2010, 16h32
  4. FileUpload de richfaces qui ne marche pas
    Par ouedmouss dans le forum JSF
    Réponses: 5
    Dernier message: 02/03/2009, 15h29
  5. A4J et Richfaces ne marche pas
    Par storm_2000 dans le forum JSF
    Réponses: 4
    Dernier message: 02/09/2008, 18h46

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