最新更新:问题已解答here。 stackoverflow中的其他人有一个类似的问题,它已得到解决。解决方案提供方便。这是我遗漏的代码行:
comboHeaderColumn.useLabelFunctionForFilterCompare = true;
该行后面是:
comboHeaderColumn.filterComboBoxBuildFromGrid = true;
comboHeaderColumn.labelFunction = formatState;
其中formatState是一种格式化组合框数据的本地方法。
更新:我现在已经使用正确的数据加载了组合框,但是当我选择一个值时没有任何反应。组合框仅加载列中的数据,当您在组合框中选择一个值时,它应该过滤该值上的行。它没有。
谢谢你的期待。我无法使用ExtendedDataGrid和ComboBox在Flash Builder 4中使用多个过滤器在Flex中工作。这是网格的一部分图像:
如果在列标题上方的框中键入文本,则“用户名”和“城市”会正确过滤,如果单击“自定义”栏,则“请求日期”允许您选择日期范围,但“请求原因”和“状态组合框”不会列出任何内容。我用comboHeaderColumn.filterComboBoxBuildFromGrid = true创建了它们;但它所做的就是将“[object Object]”作为All下唯一的其他选择。
我使用了this文章,但它只允许您对整个网格使用单个过滤器。
我完成的网格将包含大约20列和20,000到450,000行数据,因此过滤器非常重要,我需要不止一个。
代码非常直接并循环遍历所有返回的数据,如果列被识别为过滤列,则执行此操作:
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个条目:All和[object Object]
我缺少什么?无论如何,经过半天的搜索,我决定伸手去拿。
非常感谢对文章的任何建议或指示。
感谢。