Вопрос

Ниже приведена часть моего кода, взаимодействующего с сеткой данных...!

Здесь перечислены дочерние элементы конкретного узла, если я нажму на него после обновления сетки данных.

Но если я нажму на пустое место в таблице данных, я получу сообщение об ошибке

«Ошибка ссылки:Ошибка № 1069:Данные свойства не найдены в mx.controls.listClasses.ListBaseContentHolder, и значение по умолчанию отсутствует».

Как этого избежать?

if (event.target.data.children! = null) {resultset.removeall ();вар tempChildObj: ArrayCollection;tempChildObj=event.target.data.children как ArrayCollection;вар childLength: int;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