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] Personnalisation du datagrid pour une meilleur interactivité


Sujet :

Struts 1 Java

  1. #1
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut [Struts-Layout] Personnalisation du datagrid pour une meilleur interactivité
    je voudrai savoir si on pourrait améliorer l apparence d'un datagrid ,colorer les lignes sélectionées ,barer les lignes supprimées ,Comment on pourrait agir je trouve vraiment pas comment faire !!!

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ça dépend de la version de struts-layout.

    En 1.3, dans le fichier default.css, tu as les styles pour les datagrid, en particulier
    /************************************
    * Datagrid styles *
    ************************************/

    TABLE.DATAGRID {
    background-color : #336699;
    }

    TH.DATAGRID {
    color : #FFFFFF;
    background-color : #336699;
    font-weight: bold;
    font-family : verdana;
    }

    TABLE.DATAGRID TR TD {
    font-family : verdana;
    padding: 2px;
    }

    TR.DATAGRID {
    background-color : #FFFFFF;
    }

    TR.DATAGRID2 {
    background-color : #FFFFFF;
    }

    .DATAGRID_SEL {
    background-color : #336699;
    }

    .DATAGRID_DEL {
    text-decoration: line-through;
    }


    TR.DATAGRID_DEL TD INPUT {
    text-decoration: line-through;
    }

    TABLE.DATAGRID TR TD INPUT {
    width: 100%;
    }


  3. #3
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    oui tu as raison ,mais je trouve des limitations comme par exemple colorer un case modifié :s j'ai pas trouvé sur le default.css ni sur le code de l'exemple demoserveurnews de struts layout !! y'a pas moyen de pousser encore !!

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Pour ça, il faudrait modifier le fichier datagrid.js et changer le comportement... (par exemple, greffer un listner "onchange" sur les champs I/O)
    Ça te tente ?

  5. #5
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    Je vais essayer de le faire ,sinon si je bloque je crierai surement au secours

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par reverse_engineer Voir le message
    Je vais essayer de le faire ,sinon si je bloque je crierai surement au secours
    Pas de problème, je garde la discussion dans ma liste, au cas où

  7. #7
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    j'arrive vraiment pas à faire cela ,surtout que onchange n'est pas défini dans le tld de struts layout mm si je réalise l'évenement dans datagrid.js pourriez vous m'aider un peu plus

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il n'y a pas de lien entre la tld et datagrid.js.
    La tld est là pour définir les options des balises struts-layout, datagrid.js est la bibliothèque javascript pour mettre en œuvre la fonctionnalité.
    Dans la partie du code où il construit les champs d'I/O, tu rajoutes la définition du listner comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    function addDatagridCell(row, index, property, styleClass, type, values)
    {
       ...
       input.setAttribute('onchange', 'this.style.background="green"');
       newCell.appendChild(input);
       return newCell;
    }
    ...
    Comme ça, lorsque tu changes la valeur d'un champ, il apparaîtra différemment... (jusqu'à la prochaine validation, bien sûr)

  9. #9
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    le raisonnement est logique,à chaque ajout d'une cell on insert le onchange mais ca n'a pas marché ,quand j'affiche le code source de la page finale il n y a pas de onchange .
    j'ai essayé un peu de jouer sur les " ' sans aucun résultat

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le code de la page JSP ?

  11. #11
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    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
     
    <layout:html>
     
    <layout:form action="/myaction"  styleClass="FORM" width="80">
    	<layout:row>
    		<layout:datagrid property="datagrid" styleClass="DATAGRID"  model="datagrid" >
    			<layout:datagridColumn title="nom"  property="nom" />			
     
    			<layout:datagridColumn title="prenom"  property="prenom" />			
     
    /layout:datagrid>
     
        <layout:column>
    	<layout:button onclick="StrutsLayout.addDatagridLine('datagrid')">Add</layout:button>
    	<layout:button onclick="StrutsLayout.setDatagridLineState('datagrid', 'removed')">Remove</layout:button>
    	<layout:submit>Save</layout:submit>	
       </layout:column>
     
    	</layout:row>
    	</layout:form>

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le code de la page générée (sur le navigateur) ?

  13. #13
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    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
     
     
    <tr><td colspan="2"><table border="0"><tr>
    		<script src="/config/datagrid.js"></script><td colspan="2" valign="top"><table cellspacing="0" cellpadding="0" border="0" align="CENTER" class="DATAGRID"><tr><td valign="top"><table cellspacing="1" cellpadding="1" border="0" width="100%" id="datagridJsId">
    <script>strutsLayoutDatagridData['datagrid'] = new StrutsLayout.Datagrid('datagrid', 'datagridJsId', 'DATAGRID', 'DATAGRID2', true, true);
    strutsLayoutDatagridData['datagrid'].addStyleClass('removed', 'DATAGRID_DEL');
    strutsLayoutDatagridData['datagrid'].addStyleClass('selected', 'DATAGRID_SEL');
    </script>
     
     
     
     
    			<script>strutsLayoutDatagridData['datagrid'].addColumn('nom', '', 'text');</script>
     
     
     
     
     
     
    			<script>strutsLayoutDatagridData['datagrid'].addColumn('prenom', '', 'text');</script>
     
     
     
     
     
     
     
     
     
     
     
     
    		<tr><th class="DATAGRID" width="200">nom</th><th class="DATAGRID" width="200">prenom</th><th class="DATAGRID" width="200">nom</th></tr><tr onclick="strutsLayoutDatagridData['datagrid'].selectDatagridLine(this)" style="cursor:pointer;cursor:hand;" class="DATAGRID">
     
     
     
    			<td><input type="text" name="datagrid.nom[0]" value="name1"></td>			
     
     
     
     
     
    			<td><input type="text" name="datagrid.prenom[0]" value="prenom1"></td>

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu as une balise <base> dans ta page ou le projet est à la racine de serveur d'application ?
    <script src="/config/datagrid.js">
    C'est bien ce fichier que tu as modifié ?

  15. #15
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    oui c'est bien lui ,et il le lit bien !!

  16. #16
    Membre régulier Avatar de reverse_engineer
    Inscrit en
    Juillet 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2008
    Messages : 98
    Points : 80
    Points
    80
    Par défaut
    juste une chose ,le adddatagridcell qui est dans datagrid.js ne concerne que les lignes ajouté sur le champs.Donc cela ne peut pas fonctionner
    Essaye d'éliminer cette méthode ,on aura toujours un affichage,les champs sont construits dans les .class au sein du jar struts-layout1.3.jar

    Mais surement ya une méthode qui boucle sur tous les input d une page et leur greffe le listner onchange !!!!!

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/05/2008, 18h13
  2. [Struts-Layout] Style des titres pour collection
    Par ahury dans le forum Struts 1
    Réponses: 1
    Dernier message: 04/06/2007, 16h29
  3. Quel DOCTYPE choisir pour une meilleur compatibilité FF / IE
    Par Fouko dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/05/2007, 22h26
  4. Réponses: 5
    Dernier message: 20/05/2005, 11h33
  5. Quel langage pour une meilleure portabilité Win/Linux
    Par darkervein dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/04/2005, 14h59

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