Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 10h05   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 1
Points : 1
Par défaut Tri datagrid

Bonjour,
j'ai un petit souci concernant les tris dans un tableau (datagrid) en flex.
j'ai un tableau qui contient des milliers de lignes! lorsque j'utilise la fonction sortcomparefunction, le tri prend énormément de temps. Normal puisque le nombre de ligne est très important.
Ce tableau est alimenter par un httpservice décrit en php. j'aimerai à la place d'utiliser le tri automatiquement du datagrid, d'appeler un httpservice.
Donc lorsque l'utilisateur tri, le tri automtique ne s'effectue pas par contre le httpservice se lance, celui-ci alimente un arraycollection servant de dataprovider au tableau.
pimpampoum66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 19h58   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

as tu essayé de combien quelque chose avec l'événement headerRelease par exemple ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h19   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par Madfrix Voir le message
Bonjour,

as tu essayé de combien quelque chose avec l'événement headerRelease par exemple ?

je suis en train de regarder de ce côté
J'aimerai connaître le début d'un tri et la fin.
pimpampoum66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h23   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Regarde ici rubrique événements puis clique sur "Afficher les événements hérités" afin de trouver ton événement
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h35   #5
Membre régulier
 
Inscription : août 2006
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 140
Points : 80
Points : 80
J'ai eu la même problèmatique.
Le tri et le filtrage dans un datagrid flex.

Je pensais que le tri et le filtrage serait plus rapide à faire côté serveur (C#). Mais j'en suis revenu. Je fais ça côté client (Flex), c'est , de mon point de vue, beaucoup plus rapide.
vilveq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h00   #6
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par vilveq Voir le message
J'ai eu la même problèmatique.
Le tri et le filtrage dans un datagrid flex.

Je pensais que le tri et le filtrage serait plus rapide à faire côté serveur (C#). Mais j'en suis revenu. Je fais ça côté client (Flex), c'est , de mon point de vue, beaucoup plus rapide.
Maouis mon souci c'est que j'ai énormément de ligne dans le tableau et un tri sur une colonne de date et un tri sur une colonne de nombre.
et je trouve ça extrêmement lent:
Code :
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
 
		import mx.utils.ObjectUtil;
		import mx.controls.dataGridClasses.DataGridColumn;
		import mx.formatters.DateFormatter;
 
			private function sortDate(obj1:Object, obj2:Object):int
			{
				var dateA:Date=new Date(Date.parse(obj1.dob));
				var dateB:Date=new Date(Date.parse(obj2.dob));
				return ObjectUtil.dateCompare(dateA, dateB);
 
			}
 
 
 
			public var dateFormat:mx.formatters.DateFormatter;
 
 
 
			private function String2Date(date:String):Date
			{
 
				var day_month:Array=date.split('-');
 
				var day:int=new Number(day_month[0]);
 
				var month:int=new Number(day_month[1]);
 
				var year:String=day_month[2];
 
				var date_date:Date=new Date(year, month - 1, day, 0, 0, 0, 0);
 
 
 
				return date_date;
 
			}
 
			private function date_sortCompareFunc(itemA:Object, itemB:Object):int
			{
				var dateA:Date=new Date(Date.parse(itemA.@Date));
				var dateB:Date=new Date(Date.parse(itemB.@Date));
				return ObjectUtil.dateCompare(dateA, dateB);
			}
En plus je souhaite faire du tris multiple comme un AdvancedDatagrid. Sur un datagrid je sais pas si c'est faisable. En tout cas un advanceddatagrid est vraiment long.
Les fonction de tris sont peut être pas optimisées

Autres débats (rien avoir):
J'aurai une autre question: est ce que Flex 4 gère mieux l'AdvancedDataGrid que Flex 3. Et est que Flex a de beaux jours devant lui en tant que langage web?
pimpampoum66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h04   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Citation:
Envoyé par pimpampoum66 Voir le message
J'aurai une autre question: est ce que Flex 4 gère mieux l'AdvancedDataGrid que Flex 3. Et est que Flex a de beaux jours devant lui en tant que langage web?
Flex n'est pas un langage à proprement parler mais un framework. C'est comme si tu disais est ce que Zend framework a un bel avenir devant lui en tant que langage web au lieu de dire php

Ta question serait donc : est ce que Flash à un bel avenir devant lui ? je dirais personnellement que oui mais ca n'engage que moi (le taux de pénétration n'a jamais été aussi bon cela dit)


EDIT: pour ton problème ne pourrait tu pas mettre les dates dans ton datagrid sous forme yyyy-mm-dd afin de pouvoir les trier sous forme de chaine de caractères sans avoir à les parser en date (ce qui doit te faire ralentir beaucoup...) ? Fais le test au moins pour voir si tu vois une différence notable
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h25   #8
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par Madfrix Voir le message
Flex n'est pas un langage à proprement parler mais un framework. C'est comme si tu disais est ce que Zend framework a un bel avenir devant lui en tant que langage web au lieu de dire php

Ta question serait donc : est ce que Flash à un bel avenir devant lui ? je dirais personnellement que oui mais ca n'engage que moi (le taux de pénétration n'a jamais été aussi bon cela dit)


EDIT: pour ton problème ne pourrait tu pas mettre les dates dans ton datagrid sous forme yyyy-mm-dd afin de pouvoir les trier sous forme de chaine de caractères sans avoir à les parser en date (ce qui doit te faire ralentir beaucoup...) ? Fais le test au moins pour voir si tu vois une différence notable
c'est tout à fait exact pour flex. c'est un framework et pas un langage. Flex 4 est il beaucoup plus performant que Flex 3?
Pour mon problème je vais trier les dates au format yyyy-mm-dd mais de tout manière le tri nombre est très lent
pimpampoum66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h34   #9
Membre confirmé
 
Avatar de samy2525
 
Inscription : janvier 2008
Messages : 249
Détails du profil
Informations personnelles :
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 249
Points : 266
Points : 266
Bonjour, pourquoi ne pas paginer ta DataGrid comme ça tu peux faire le trie sur un nombre réduit de données (gain de temps significatif)

Bon courage

Samy
__________________
http://www.m-ataf.com (En cours de construction)
samy2525 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 10h28   #10
Invité de passage
 
Inscription : décembre 2010
Messages : 14
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par samy2525 Voir le message
Bonjour, pourquoi ne pas paginer ta DataGrid comme ça tu peux faire le trie sur un nombre réduit de données (gain de temps significatif)

Bon courage

Samy
c'est ce que j'ai fait
pimpampoum66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h20.


 
 
 
 
Partenaires

Hébergement Web