|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre habitué
![]() |
Bonjour,
Je cherche à créer dynamiquement des DataDrid en fonction d'une source de données (pour l'instant XML), et j'ai une erreur à l'utilisation (voir à la fin de ce post). Code :
Code :
Par contre, lorsque j'essaie d'éditer les deux premières lignes de n'importe quelle dataGrid, ça fonctionne, dès que j'essaie de modifier une ligne d'indice supérieure, J'ai une erreur: Citation:
Donc, pour que cela fonctionne, il faut que le dernier dataGrid soit celui qui a le plus grand nombre de lignes. Ce qui n'est pas acceptable. Je ne comprends pas, normalement chaque instance de datagrid doit avoir son propre dataprovider. Avez-vous ne serait-ce qu'une piste? |
|||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 279 ![]() |
Salut,
fais ceci et ca marchera Code :
__________________
Je ne réponds pas aux questions envoyées par mp |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
D'abord merci pour ta réponse, j'ai appris en passant la syntaxe .. de l'e4x que je n'avais jamais essayé (proche de la syntaxe xpath pour le coup). Je suis tout nouveau en FLEX et je découvre un peu.
Ta solution fonctionne, et je vois donc que mon problème viens de l'utilisation de columns. As-tu une explication sur la cause du problème car j'ai d'autres dysfonctionnements sur les datagrid alimentés par XML, et cela m'aiderait peut-être à les résoudre? Si je ne dois pas utiliser columns, comment devrais-je faire si j'ai besoin de définir explicitement certaines colonnes: - Titre d'entête - éditable ou pas - ... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 279 ![]() |
A vrai dire je n'utilise jamais ta solution à savoir définir les columns dans les métadonnées Declarations. Je pars du principe que si tu les déclares dans ce tag, elles ne sont pas dynamiques et peuvent par conséquent être "ecrites en dur" en mxml.
Sinon si elles sont dynamiques j'utilise as3 et une boucle par exemple.
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#5 | ||||
|
Membre habitué
![]() |
Effectivement, en déclarant les colonnes en AS3 dans la boucle cela fonctionne.
Par contre, quand je déclare en AS3 hors de la boucle, j'ai l'erreur. Avec l'AS3 dans la boucle ça fonctionne: Code :
Code :
Je trouve ce comportement très étrange, et je n'ai pas d'explication. Je compte mettre "Résolu" à ce post, mais je voulais d'abord savoir si tu avais une explication sur cette différence de comportement. |
||||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 279 ![]() |
C'est probablement du au fait que lorsque tu initialises columns hors de la boucle cette variable est initialisée 1 seule fois. Donc tu as X datagrids avec une seule référence de columns. Dès lors, a chaque demande d’édition d'un champs d'index > 1, le système essaie d'éditer dans le dataprovider de chaque datagrid possédant cette instance de columns, la valeur. Or, dans certains datagrids, cela sort en erreur car tous tes dataprovider non pas tous la même taille.
Quand bien même ils auraient tous la même taille, tu risquerais d'avoir des résultats non voulus voir incompréhensibles. Il te faut donc un référence distincte de columns par datagrid.
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() |
Ok merci, j'essaierai de garder ça en tête pour éviter ce genre d'erreur, même si je ne trouve pas ça très naturel.
En tout cas merci, car je pense que j'aurai peiné à trouver, j'aurai plus chercher une cause sr le dataprovider. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com