Question

Ci-dessous, une partie de mon code qui interagit avec la grille de données ...!

Ceci répertorie les enfants du nœud particulier si je clique dessus après l'actualisation de la grille de données.

Mais si je clique sur un espace vide de la grille de données, j'obtiens une erreur en disant

" ReferenceError: Erreur n ° 1069: les données de propriété ne sont pas trouvées sur mx.controls.listClasses.ListBaseContentHolder et il n'y a pas de valeur par défaut. "

Comment éviter cela?

if (event.target.data.children! = null)         {             resultSet.removeAll ();             var tempChildObj: ArrayCollection;             tempChildObj = event.target.data.children en tant qu'ArrayCollection;             var childLength: int;             childLength = tempChildObj.length;

        for(var i:int =0;i<childLength;i++)
        {

            resultSet.addItem(tempChildObj.getItemAt(i));

        }

        resultSet.addItem(tempChildObj);
    }


}
Était-ce utile?

La solution

Ce que l'erreur vous dit, c'est que la propriété target de l'événement ne possède pas de propriété appelée data dans votre cas d'erreur. Cela a du sens puisque vous cliquez sur une ligne vide - une ligne vide ne contient aucune donnée.

Ce que vous voudrez faire en premier lieu est de vérifier si la cible de l'événement contient une propriété data avant de commencer à accéder à la propriété enfant de données . L'un ou l'autre des tests suivants devrait fonctionner:

if( event.target.hasOwnProperty( "data" ) ) {
    // rest of your code here
}

ou

if( event.target.data ) {
    // rest of your code here
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top