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

AngularJS Discussion :

Application d'un filtre orderBy


Sujet :

AngularJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut Application d'un filtre orderBy
    Bonjour,

    Je suis en train de créer un filtre pour ordonner les colonnes d'un tableau (5 colonnes). Ce filtre s'actionne lors d'un clic dans une case du header.

    Mon problème est que, lorsque je clique donc sur une case du header, il n'y a que 3 colonnes sur les 5 qui sont mises dans l'ordre ...
    Ce que je veux, c'est que la ligne entière soit indivisible, que toutes les cases d'une ligne restent sur la même ligne après avoir été ordonnées puisqu'elles appartiennent à un objet.

    Pour expliquer plus avant, mon tableau affiche des "produits conditionnés". Un produit conditionné est composé d'un produit et d'un conditionnement.
    Par exemple le produit : "samoussa", lié avec le conditionnement : "lot de 10" nous donne un produit conditionné "samoussas lot de 10".

    Nom : tableau_1.png
Affichages : 131
Taille : 26,0 Ko

    Et lorsque je clique pour mettre dans l'ordre selon la désignation du produit, ce sont les colonnes de conditionnement qui sont ordonnées ... mais les produits restent dans le même ordre comme vous pouvez le voir sur la copie d'écran ci-dessous :

    Nom : tableau2.png
Affichages : 132
Taille : 26,0 Ko


    Voici mon code Html du tableau :

    Code html : 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
    <table id="tableProduitsConditionnes" class="table table-striped">
    	<thead>
    		<tr>
    			<th ng-click="sortData('pc.produit.designation')">
    				Produit
    				<div ng-class="getSortClass('pc.produit.designation')"></div>
    			</th>
    			<th ng-click="sortData('pc.produit.prix')">
    				Prix produit
    				<div ng-class="getSortClass('pc.produit.prix')"></div>
    			</th>
    			<th>Conditionnement</th>
    			<th>Prix total</th>
    			<th>en carte ?</th>
    		</tr>
    	</thead>
    	<tbody>
    		<tr ng-repeat="pc in produitsConditionnes | orderBy:sortColumn:reverseSort">
    			<td style="display:none;" ng-model="idProduitConditionne">{{pc.idProduitConditionne}}</td>
    			<td>{{pc.produit.designation}}</td>						
    			<td>{{pc.produit.prix}}</td>			
    			<td>{{pc.conditionnement.designation}}</td>				
    			<td>{{pc.prixProdCond}}</td>				
    			<td>{{pc.enCarte}}</td>		
    			<td>
    				<button class="btn btn-default"
    					ng-click="modifier_produit_conditionne(produitConditionne.idProduitConditionne)">Modifier</button>
    				<button class="btn btn-danger"
    					ng-click="supprimer_produit_conditionne(produitConditionne.idProduitConditionne)">Supprimer</button>
    			</td>						
    		</tr>
    	</tbody>
    </table>

    Voici le javascript :
    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
    	//gestion des orderBy
    	$scope.reverseSort = false;
    	$scope.sortColumn = "pc.produit.designation";
     
    	$scope.sortData = function(column) {
    			$scope.reverseSort = ($scope.sortColumn == column)? !$scope.reverseSort : false;
    			$scope.sortColumn = column;
    	}
     
    	$scope.getSortClass = function(column) {
    		if($scope.sortColumn == column) {
    			return $scope.reverseSort ? 'arrow-down' : 'arrow-up';
    		}
    		return '';
    	}

    Comment puis-je faire pour que les lignes soient ordonnées toutes ?

    Autre problème : je voudrais bien voir le code json qui est envoyé par mon serveur mais avec firefox il l'affiche sous forme d'objet ... comment faire pour voir le json s'il vous plaît ?

    Voici 2 copies d'écran du json envoyé par le serveur (une copie avec les objets internes non déployés, et une autre copie avec les objets internes déployés) :
    Objets internes non déployés
    Nom : pc_2.png
Affichages : 131
Taille : 9,5 Ko

    Objets internes déployés

    Nom : pc.png
Affichages : 125
Taille : 19,9 Ko

    Merci,

    PS : j'ai essayé de faire un codePen mais je n'arrive pas à le faire fonctionner à cause du json ... http://codepen.io/francky74/pen/gwmvdo

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut
    Bonjour,

    Bon, déjà, mon problème est ridicule puisque les données sont symétriques et donc on ne voit pas les deux premières colonnes changer d'ordre ...
    Mais j'ai quand même fait une modification au cas où ...

    J'ai créé un bean dans lequel je met en attribut les colonnes du tableau.
    Dans l'action (côté serveur) je créé ces beans que je mets dans une liste ... puis j'affiche la liste qui ne contient plus un seul objet ...

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

Discussions similaires

  1. Problème avec filtre
    Par Salsaboy60 dans le forum IHM
    Réponses: 3
    Dernier message: 21/03/2009, 11h50
  2. Problème avec filtre sur filtre
    Par barbapapa2 dans le forum IHM
    Réponses: 5
    Dernier message: 25/10/2008, 11h14
  3. Problème avec filtre moyenneur "flou uniforme" d’une image
    Par SmileSoft dans le forum C++Builder
    Réponses: 15
    Dernier message: 23/04/2008, 17h29
  4. Problème avec Filtre Blur sur un clip trop large
    Par gobi13 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 20/01/2008, 23h51
  5. Problème avec filtre d'un formulaire ?
    Par HookerSeven dans le forum Access
    Réponses: 3
    Dernier message: 25/02/2006, 01h59

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