سؤال

وفيما يلي جزء من قانون بلدي التفاعل مع شبكة البيانات ...!

وهذا يسرد الأطفال من عقدة معينة إذا كنت فوق عليها بعد منعش في DataGrid ..

ولكن إذا كنت فوق على مساحة فارغة من في DataGrid أحصل على خطأ قائلا

و"ReferenceError: خطأ # 1069: البيانات الملكية لم يتم العثور على mx.controls.listClasses.ListBaseContentHolder وليس هناك قيمة افتراضية"

وكيف يمكن تجنب ذلك؟

وإذا (event.target.data.children! = فارغة)         {             resultSet.removeAll ()؛             فار tempChildObj: ArrayCollection.             tempChildObj = event.target.data.children كما ArrayCollection.             فار childLength: دولي.             childLength = tempChildObj.length؛

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

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

        }

        resultSet.addItem(tempChildObj);
    }


}
هل كانت مفيدة؟

المحلول

ما الخطأ أقول لك هو أن الملكية target الحدث لايوجد خاصية تسمى data في حالة الخطأ الخاصة بك. هذا الأمر يبدو معقولا تماما منذ كنت النقر على صف فارغ - سوف صف فارغ لا يحتوي على أية بيانات

وماذا عليك أن ترغب في القيام به أولا هو معرفة ما اذا كان target الحدث يحتوي على خاصية data قبل البدء في الوصول إلى الملكية child من data. أي واحد من الاختبارات التالية يجب أن تعمل:

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

أو

if( event.target.data ) {
    // rest of your code here
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top