Не могу получить 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 записи в поле со списком: Все и [объект объекта]
Что мне не хватает??? Во всяком случае, после полдня поисков я решил протянуть руку.
Любые предложения или направления к статье будут очень благодарны.
Благодарю.