2009-07-31 9 views
0

Voici une partie de mon code qui interagit avec la grille de données ...!Flex Datagrid Query

Cette liste des enfants du nœud particulier si je clique dessus après avoir rafraîchi la grille de données ..

Mais si je clique sur un espace vide de la grille de données que je reçois une erreur disant

« ReferenceError: Erreur # 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?

si (événement.target.data.children! = Null) { resultSet.removeAll(); var tempChildObj: ArrayCollection; tempChildObj = événement.target.data.children en tant que ArrayCollection; var childLength: int; childLength = tempChildObj.length;

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

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

     } 

     resultSet.addItem(tempChildObj); 
    } 


} 

Répondre

1

Qu'est-ce que l'erreur vous dit est que target propriété de l'événement ne dispose pas d'une propriété appelée data dans votre cas d'erreur. Cela est logique puisque vous cliquez sur une ligne vide - une ligne vide ne contiendra aucune donnée.

Qu'est-ce que vous voulez faire en premier est de vérifier si target de l'événement contient une propriété data avant de commencer à accéder à la propriété child de data. Soit l'un des tests suivants devraient fonctionner:

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

ou

if(event.target.data) { 
    // rest of your code here 
} 
Questions connexes