Ошибка ComboBox в ActionScript - PullRequest
0 голосов
/ 20 июня 2009

Я пытался отфильтровать поставщик данных в поле со списком на основе значений в текстовых полях. Когда содержимое провайдера данных изменяется, поле со списком автоматически вызывает метод события change. Пожалуйста, найдите образец кода ниже.

Функция фильтра:

private function filterLocations(event:FocusEvent):void {
    locationsList1.filterFunction = filterUtility;  
    locationsList1.refresh();                           
}   

public function filterUtility(item:Object):Boolean {
// pass back whether the location square foot is with in the range specified

if((item.SQUARE_FOOTAGE >= rangeText1.text) && (item.SQUARE_FOOTAGE rangeText2.text))
    return item.SQUARE_FOOTAGE;
} 

// THIS WOULD BE CALLED WHEN COMBO BOX SELECTION IS DONE 
private function selectLocationsReports(event:ListEvent):void {
    selectedItem =(event.currentTarget as ComboBox).selectedItem.LOCATION_ID;
}

Когда DataProvider обновляется, он автоматически вызывает метод change и выбрасывает функцию Null Pointer, потому что он преждевременно вызывает вышеуказанный метод selectLocationsReports и его ошибка выдает.

Может кто-нибудь дать мне знать, как остановить распространение события CHANGE при обновлении поставщика данных.

Ответы [ 3 ]

0 голосов
/ 20 июня 2009

Еще одна вещь, которую нужно сделать (поверх ответа Kekoa), - поместить оператор if в обработчик событий и убедиться, что данные есть, прежде чем вы начнете работать с ним.

0 голосов
/ 20 июня 2009

Удобный синтаксис, который я часто использую для этого,

if (имя поставщика данных) {

}

0 голосов
/ 20 июня 2009

Вы не можете остановить событие CHANGE, просто не добавляйте прослушиватель событий, если вы не готовы получить событие. Я не вижу, где находится ваш прослушиватель событий для Event.CHANGE в коде выше.

Просто убедитесь, что вы не addEventListener(Event.CHANGE, selectLocationsReports), пока ваш ComboBox не будет готов к этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...