Requête Flex Datagrid
-
06-07-2019 - |
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);
}
}
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 ??code> 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 ??code> 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
}