Не могу получить ExtededDataGrid в Flex для фильтрации с ComboBox на нескольких столбцах

ПОСЛЕДНИЕ ОБНОВЛЕНИЯ: проблема ответили здесь. У кого-то еще в stackru была похожая проблема, и она была решена. Решение предоставлено для удобства. Это строка кода, которую я пропустил:

 comboHeaderColumn.useLabelFunctionForFilterCompare = true;

за этой строкой следуют эти:

 comboHeaderColumn.filterComboBoxBuildFromGrid = true;
 comboHeaderColumn.labelFunction = formatState;

где formatState - это локальный метод, который форматирует данные для выпадающего списка.


ОБНОВЛЕНИЕ: у меня теперь есть загрузка комбобокса с правильными данными, но когда я выбираю значение, ничего не происходит. Поля со списком загружают только данные, которые находятся в столбце, и когда вы выбираете значение в выпадающем списке, он должен фильтровать строки по этому значению. Это не так.

Спасибо за поиск. У меня проблемы с получением нескольких фильтров для работы во Flex во Flash Builder 4 с использованием ExtendedDataGrid и ComboBox. Вот изображение части сетки:

Текущая сетка данных

Имя пользователя и город фильтруются правильно, если вы вводите текст в поле над заголовком столбца, а Дата запроса позволяет вам выбирать диапазоны дат, если вы нажимаете на пользовательскую панель, но в списках причины и состояния запроса ничего не отображается. Я создал их, используя comboHeaderColumn.filterComboBoxBuildFromGrid = true; но все, что он делает, это помещает "[объект объекта]" в качестве единственного другого выделения в разделе "Все".

Я использовал эту статью, но она позволит вам использовать только один фильтр для всей сетки.

Моя законченная сетка будет содержать около 20 столбцов и от 20000 до 450000 строк данных, поэтому фильтры действительно важны, и мне потребуется более одного.

Код очень прост и перебирает все возвращаемые данные, и если столбец определяется как столбец фильтра, он делает это:

comboHeaderColumn.filterComboBoxDataProvider = codeValuePairs;
comboHeaderColumn.filterComboBoxLabelField = "Value";
comboHeaderColumn.filterControl = "ComboBox";
comboHeaderColumn.filterOperation = FilterExpression.FILTER_OPERATION_TYPE_EQUALS;                  
comboHeaderColumn.headerText = ac.Header;
comboHeaderColumn.dataField = ac.Name; 
if( ac.Header == "State" || ac.Header == "Request Reason" )
{
    comboHeaderColumn.filterComboBoxBuildFromGrid = true;
}   

ProfileDataColumns.push(comboHeaderColumn); 

Это создает 2 записи в поле со списком: Все и [объект объекта]

Что мне не хватает??? Во всяком случае, после полдня поисков я решил протянуть руку.

Любые предложения или направления к статье будут очень благодарны.

Благодарю.

0 ответов

Другие вопросы по тегам