Как я могу отфильтровать сетку данных на основе значения в поле со списком? Кто-нибудь может показать мне несколько хороших примеров?
В моем приложении я уже фильтрую сетку данных на основе текста, введенного пользователем. Я проверяю, соответствует ли введенная строка записи в столбце таблицы данных, и если совпадение найдено, вызывается функция filterFunction на поставщике данных. Все это я сделал только с помощью учебника, так как я учусь гибкому, как я делаю свой проект.
Это тот код:
<mx:FormItem direction="horizontal">
<mx:ComboBox id="searchCriteria1" dataProvider="{criteriaDP1}" change="searchFunction()"/>
<mx:TextInput id="search" change="searchFunction()"/>
<mx:Button label="Clear Search" click="clear()" />
</mx:FormItem>
private function searchFunction():void{
defectList.filterFunction = filterItems;
defectList.refresh();
}
private function filterItems(item:Object):Boolean
{
var isMatch:Boolean = false
if(searchCriteria1.selectedItem.label == "Defect Id")
{
if(item.defId.toString().search(search.text.toString()) != -1)
{
isMatch = true
}
}
else if(searchCriteria1.selectedItem.label == "Review Id")
{
if(item.revId.toString().search(search.text.toString()) != -1)
{
isMatch = true
}
}
return isMatch;
}
ЗдесьfectList - поставщик данных для таблицы данных, revId, defId - столбцы таблицы данных.
Теперь, как мне отфильтровать, используя поля со списком. У меня есть поле со списком «приоритет» со значениями «высокий», «средний», «низкий», «все». Если я выберу все, фильтрация не производится. Если я выберу "высокий", то должны появиться только те поля со значением столбца priprity, как "высокий".
EDIT
Я даже пытался так:
if(searchCriteria2.selectedItem.label=="Priority")
{
if (item.revType.toLowerCase().search(searchCriteria.selectedLabel.toLowerCase()) != -1)
{
Alert("yes");
isMatch=true
}
}
searchCriteria - это поле со списком, в котором у меня есть пункты "ALL", "HIGH" ...
У меня есть две строки со значением «высокий», и я получаю предупреждение «да» только два раза ..
Но в сетке данных отображаются все четыре строки.