无法在Flex中获取Extended DataGrid以在多列上使用ComboBox进行过滤

时间:2013-06-26 19:45:15

标签: flex actionscript datagrid combobox flexicious

最新更新:问题已解答here。 stackoverflow中的其他人有一个类似的问题,它已得到解决。解决方案提供方便。这是我遗漏的代码行:

 comboHeaderColumn.useLabelFunctionForFilterCompare = true;

该行后面是:

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

其中formatState是一种格式化组合框数据的本地方法。


更新:我现在已经使用正确的数据加载了组合框,但是当我选择一个值时没有任何反应。组合框仅加载列中的数据,当您在组合框中选择一个值时,它应该过滤该值上的行。它没有。

谢谢你的期待。我无法使用ExtendedDataGrid和ComboBox在Flash Builder 4中使用多个过滤器在Flex中工作。这是网格的一部分图像:

Current Data Grid

如果在列标题上方的框中键入文本,则“用户名”和“城市”会正确过滤,如果单击“自定义”栏,则“请求日期”允许您选择日期范围,但“请求原因”和“状态组合框”不会列出任何内容。我用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]

我缺少什么?无论如何,经过半天的搜索,我决定伸手去拿。

非常感谢对文章的任何建议或指示。

感谢。

0 个答案:

没有答案
相关问题