我有
DataGrid包含4列:
No. OrderTitle OrderDescription Price
现在,DataGrid有100条记录。我想使用第一个arraycollection(ordersAC)过滤DataGrid,每次都会动态更改。
喜欢: ordersAC 有5 orderId
1521,2154,2233,5484,2351
然后在DataGrid显示中,只有5条记录取决于orderId
。
我尝试了以下方法,但没有奏效:
private function onSearchRecordClick(event:FlexEvent):void
{
var orderAC:ArrayCollection = ordersGridId.orderAC;
for(var i:int = 0; i<ordersRecordAC.length-1;i++)
{
orderAC.filterFunction = filterRows;
function filterRows(item1:Object):Boolean
{
if(item1.orderId == ordersRecordAC[i])
return true;
else
return false;
}
}
orderAC.refresh();
}
<mx:DataGrid id="ordersGridId" lockedColumnCount="5" dataProvider="{orderAC}" sortableColumns="true">
希望了解我的问题。
感谢。
答案 0 :(得分:1)
我会用你的代码执行以下操作。
private var orderAC:ArrayCollection; // assign this somewhere else
private function onSearchRecordClick(event:FlexEvent):void
{
if(!orderAC.filterFunction)
orderAC.filterFunction = filterRows;
orderAC.refresh();
}
private function filterRows(item1:Object):Boolean
{
for(var i:int = 0;i < ordersRecordAC.length;i++)
{
if(item1.orderId == ordersRecordAC[i])
return true;
}
return false;
}