Использование функции filterFunction для фильтрации по нескольким параметрам - PullRequest
0 голосов
/ 19 сентября 2011

Я определил XMLList, который получает свои данные из следующего XML-файла:

    <modules>
        <module hab_id="1" module_id="1" default="true" access="true" />
        <module hab_id="1" module_id="2" default="true" access="true" />
        <module hab_id="1" module_id="2" default="true" access="false" />
        <module hab_id="1" module_id="2" default="false" access="true" />
        <module hab_id="2" module_id="3" default="true" access="true" />
        <module hab_id="2" module_id="3" default="false" access="true" />
    </modules>

Теперь в моей функции после нажатия кнопки я хочу фильтровать по hab_id и module_id одновременнои заполните сетку данных.

Я пробовал это в функции:

    public function click_Handler(event:MouseEvent):void{
        myXMLList.filterFunction = myFilter;
        myXMLList.refresh();
        myDatagrid.dataProvider = myXMLList;
    }

    private function myFilter(xml:XML):Boolean{
                    return Number(xml.@hab_id) == 1;
                    return Number(xml.@module_id) == 2;
                }

Но фильтр работает только для hab_id, как кажется.Это не фильтрация как по hab_id, так и по module_id.

Любая помощь по этому поводу?

1 Ответ

0 голосов
/ 19 сентября 2011

Попробуйте это:

private function myFilter(xml:XML):Boolean{
   return Number(xml.@hab_id) == 1 && Number(xml.@module_id) == 2;
}

Ваш первый возврат вернется из функции, никогда не позволяя выполнить второй возврат.Объединение проверок на равенство в одно возвращаемое значение должно дать вам то, что вы хотите.

...