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

Struts 1 Java Discussion :

[Struts-Layout] pager et bouton radio


Sujet :

Struts 1 Java

  1. #1
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut [Struts-Layout] pager et bouton radio
    bonjour,
    j'ai réussit tant bien que mal à afficher à partir d'une collection d'objet un tableau paginé de cette collection, voici le code que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <layout:pager maxPageItems="5">
    	<layout:collection name="categorieCollection" id="ligne" width="100%" indexId="id" offsetIndexId="0" selectType="radio" selectProperty="code" selectName="cb" onClick="submit();">
    		<layout:collectionItem title="Code" name="ligne" property="code"/>
    		<layout:collectionItem title="Libelle" name="ligne" property="libelle"/>
    	</layout:collection>
    </layout:pager>
    malheureusement j'assigne avec cette méthode la valeur de mon champ code au bouton radio sélectioné
    or je préférai lui affecter un identifiant (j'ai essayé id) qui commencerai à 0
    comment faire?

    merci de votre aide

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <layout:pager maxPageItems="5">
    	<layout:collection name="categorieCollection" id="ligne" width="100%" indexId="id" offsetIndexId="0" onClick="submit();">
    		<layout:collectionItem title="">
    		   <layout:radio key="" property="cb" value="${id}" layout="false"/>
    		</layout:collectionItem>
    		<layout:collectionItem title="Code" name="ligne" property="code"/>
    		<layout:collectionItem title="Libelle" name="ligne" property="libelle"/>
    	</layout:collection>
    </layout:pager>
    Par contre, le problème avec le layout:pager, c'est que la valeur de l'index commence à 0 sur chacune des pages.

    Pour résoudre ce problème, il existe une solution en calculant la valeur de l'index en fonction de la page sélectionnée et du nombre maximum d'éléments affichés par page.
    Ceci est expliqué dans ce message.

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    merci ça marche niquel
    par contre pour avoir "le vrai index" ya pas moyen avec offset et offset offsetIndexId de lui dire par quel nombre commencer? (j'ai essayé mais sans succès)

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Le problème d'index étant lié au tag pager, modifier les attributs du tag collection n'aura, je pense, aucun impact.
    Mais bon, je reconnais ne pas l'avoir testé.

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    d'accord, et au niveau de l'action java il y a moyen de récupérer les informations? numéro de page? pour ce qui est du nombre d'élément je peux le mettre en session

    merci de ton aide

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour pouvoir récupérer le numéro de page dans l'Action, tu peux :

    soit mettre l'attribut pagerPage dans le scope session via le tag c:set :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="pagerPage" value="${param['pagerPage']}" scope="session"/>
    soit ajouter une propriété pagerPage dans ton ActionForm et passer sa valeur en champ caché à la soumission du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:hidden property="pagerPage" value="${pagerPage}"/>

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    merci pour tes réponses,
    ta solution de passer la valeur en champ caché marche bien,
    j'ai un peu galéré pour la récupérer dans une action mais maintenant c'est bon

    par contre sur ma page j'ai un petit problème :
    en gros j'ai un tableau de deux pages ou chaque ligne peut être sélectionnée par un bouton radio
    grâce à ta solution j'arrive maintenant à récupérer le bon numéro de ligne (même si je suis sur la deuxième page) seulement dans mon action j'ai un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.findForward("mapage");
    qui me "recharge" ma jsp avec la première page de mon tableau, alors que j'étais à l'instant sur la deuxième

    est ce que tu vois d'où cela peut provenir?

    merci de ton aide

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu peux ajouter l'attribut sessionPagerId dans le tag layout:pager :
    sessionPagerId - Nom de l'attribut session qui contient le numéro de la page à afficher initialement (l'attribut doit être de type String) Quand l'utilisateur change de page, l'attribut est mis à jour automatiquement. Si cet attribut n'est pas utilisé, c'est la première page s'affiche initialement.
    Dans ce cas, la meilleure solution est de mettre le numéro de la page dans le scope session et le référencer dans l'attribut sessionPagerId :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <layout:pager maxPageItems="5" sessionPagerId="pagerPage">

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/10/2011, 13h16
  2. Réponses: 4
    Dernier message: 24/02/2010, 09h44
  3. [Struts-Layout] pager and collection, probleme avec sort
    Par chouchou93 dans le forum Struts 1
    Réponses: 22
    Dernier message: 27/06/2007, 13h34
  4. [Struts-Layout] Utilisation des boutons next et previous
    Par elsodiop dans le forum Struts 1
    Réponses: 3
    Dernier message: 13/02/2007, 11h56
  5. [struts-layout] pager et tiles ?
    Par kausa dans le forum Struts 1
    Réponses: 15
    Dernier message: 18/05/2006, 14h57

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