Domanda

Di seguito è parte del mio codice che interagisce con la griglia dei dati ...!

Questo elenca i figli di quel particolare nodo se faccio clic su di esso dopo aver aggiornato il datagrid ..

Ma se clicco su uno spazio vuoto del datagrid ricevo un errore che dice

" ReferenceError: errore n. 1069: dati di proprietà non trovati su mx.controls.listClasses.ListBaseContentHolder e non esiste alcun valore predefinito. "

Come evitarlo?

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

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

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

        }

        resultSet.addItem(tempChildObj);
    }


}
È stato utile?

Soluzione

Ciò che l'errore ti dice è che la proprietà target dell'evento non ha una proprietà chiamata data nel tuo caso di errore. Questo ha senso poiché fai clic su una riga vuota: una riga vuota non conterrà alcun dato.

Quello che dovresti fare prima è controllare se il target dell'evento contiene una proprietà data prima di iniziare ad accedere alla proprietà child di dati . Uno dei seguenti test dovrebbe funzionare:

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

o

if( event.target.data ) {
    // rest of your code here
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top