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

Flex Discussion :

[débutant] dataGrid : cannot determine comparator for SortField with name


Sujet :

Flex

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut [débutant] dataGrid : cannot determine comparator for SortField with name
    Bonjour tout le monde,

    je préviens, je suis débutant en flex (c joli mais c galère pour les débutants, bref c'est pas le sujet)

    j'utilise ASSQL pour me connecter à ma base MySQL,
    ca marche très bien, je remplis donc mon dataGrid correctement avec les données de la base,

    mais quand je clique sur une colonne du dataGrid qui contient des valeurs vides (sinon ca marche) pour trier selon un autre champ (exemple ici : Ville), ben ca plante et il me dit

    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
    rror: Cannot determine comparator for SortField with name 'Ville'.
    	at mx.collections::SortField/nullCompare()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\SortField.as:566]
    	at mx.collections::SortField/http://www.adobe.com/2006/flex/mx/internal::internalCompare()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\SortField.as:234]
    	at mx.collections::Sort/internalCompare()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\Sort.as:831]
    	at mx.collections::Sort/findItem()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\Sort.as:527]
    	at mx.collections::ListCollectionView/getItemIndex()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:513]
    	at ListCollectionViewCursor/collectionEventHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:2154]
    	at flash.events::EventDispatcher/dispatchEventFunction()
    	at flash.events::EventDispatcher/dispatchEvent()
    	at mx.collections::ListCollectionView/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:833]
    	at mx.collections::ListCollectionView/internalRefresh()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:1275]
    	at mx.collections::ListCollectionView/refresh()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:402]
    	at mx.controls::DataGrid/sortByColumn()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\controls\DataGrid.as:3560]
    	at mx.controls::DataGrid/headerReleaseHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\controls\DataGrid.as:4909]
    	at flash.events::EventDispatcher/dispatchEventFunction()
    	at flash.events::EventDispatcher/dispatchEvent()
    	at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
    	at mx.controls.dataGridClasses::DataGridHeader/mouseUpHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\controls\dataGridClasses\DataGridHeader.as:1259]
    quelqu'un aurait-il eu ce problème et une idée pour le contourner,
    merci d'avance

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Un petit bout de code serait pas mal pour qu'on te réponde plus vite.
    Question : Ville est un objet ou un String ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication 
            xmlns:mx="http://www.adobe.com/2006/mxml" 
            xmlns:assql="com.maclema.mysql.mxml.*" 
            layout="absolute">
     
            <mx:Script>
            <![CDATA[
                            import mx.controls.Alert;
                            import com.maclema.mysql.events.MySqlErrorEvent;
                    import com.maclema.util.ResultsUtil;
     
                    private function handleConnected(e:Event):void {
                            service.send("SELECT * FROM employees LIMIT 10");
                    }
     
                    private function handleError(e:MySqlErrorEvent):void {
                            Alert.show(e.text);
                    }
            ]]>
            </mx:Script>
     
            <assql:MySqlService id="service"
                    hostname="localhost" 
                    username="root"
                    password=""
                    database="assql-test"
                    autoConnect="true"
                    connect="handleConnected(event)" 
                    sqlError="handleError(event)" />
     
            <mx:DataGrid id="grid" left="10" right="10" top="10" bottom="10"
                    dataProvider="{service.lastResult}"
                    columns="{ResultsUtil.getDataGridColumns(service.lastResultSet)}" />
     
    </mx:WindowedApplication>
    Pour moi, Ville est un champ de la table employees, certaines des valeurs sont vides donc je pense qu'il ne sait pas comment trier ...
    mais doit y a voir un moyen de contourner mais étant débutant ...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Je n'ai jamais utilisé l'attribut columns, le comportement est peut être différent. Essaie de mettre explicitement les colonnes et voit si tu as encore le souci, il existe un exemple dans la doc offcielle. Ensuite si tu as toujours l'erreur il faudra que tu définisses la fonction de tri pour cette colonne grâce à sortCompareFunction.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    étant débutant en flex et ne sachant faire que très peu de chose,
    j'ai contourné le problème en n'autorisant pas la valeur Null dans les champs de la base MySQL ...

    merci de vos réponses

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

Discussions similaires

  1. [Débutant] invalid literal for int() with base 10: '\r'
    Par oodini dans le forum Général Python
    Réponses: 19
    Dernier message: 23/03/2011, 15h25
  2. Réponses: 11
    Dernier message: 18/11/2008, 00h55
  3. Réponses: 5
    Dernier message: 03/07/2007, 14h06
  4. [débutant] datagrid
    Par souaddemaroc dans le forum Débuter
    Réponses: 9
    Dernier message: 19/05/2006, 11h37
  5. Réponses: 3
    Dernier message: 05/12/2005, 10h27

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