My point is that it's not necessary to set the filterFunction to null.
Filter functions are not composed (do not "stack"). Try your code with
the following filterArrayColl:

private function filterArrayColl():void
{
foo.filterFunction = fileterFunction;
foo.refresh();

trace(foo);

foo.filterFunction = fileterFunctionTwoe;;
foo.refresh();

trace(foo);
}

It produces the exact same output, even though the filterFunction is not
reset to null.

-- 
Maciek Sakrejda
Truviso, Inc.
http://www.truviso.com

-----Original Message-----
From: Cato Paus <[EMAIL PROTECTED]>
Reply-To: flexcoders@yahoogroups.com
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Help: filterFunction and Dates
Date: Sun, 26 Oct 2008 09:13:42 -0000

Hi I'm not sure where you want to go with this sample code, but here
is the flex builder code

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute">

<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;
import mx.collections.ArrayCollection;


private var foo:ArrayCollection = new ArrayCollection([1,2,3,4]);



private function fileterFunction(item:Object):Boolean
{
//trace(ObjectUtil.toString(item));
var test:Boolean;

if(int(item) %2 ==1){
test = true;
}else{
test = false;
}
return test; 
}

private function fileterFunctionTwoe(item:Object):Boolean
{
var test:Boolean;
if(int(item) %2 ==0){
test = true;
}else{
test = false;
}
return test; 
}


private function filterArrayColl():void
{
foo.filterFunction = null;
foo.refresh();
foo.filterFunction = fileterFunction;
foo.refresh();

trace(foo);

foo.filterFunction = null;
foo.refresh();
foo.filterFunction = fileterFunctionTwoe;;
foo.refresh();

trace(foo);
}

]]>
</mx:Script>
<mx:Button click="filterArrayColl();" />
</mx:Application>

--- In flexcoders@yahoogroups.com, Maciek Sakrejda <[EMAIL PROTECTED]>
wrote:
>
> //Allways set to null first!!!! else you get filter inside
> the filter!
> myArrayCollection.filterFunction=null;
> 
> Cato,
> 
> Can you give an example of this? I tried the following and
> 
> var foo:ArrayCollection = new ArrayCollection([1,2,3,4]);
> trace(foo);
> foo.filterFunction = function(num:int):Boolean {
> return num % 2 == 1;
> };
> foo.refresh();
> trace(foo);
> foo.filterFunction = function(num:int):Boolean {
> return num % 2 == 0;
> };
> foo.refresh();
> trace(foo);
> foo.filterFunction = null;
> foo.refresh();
> trace(foo);
> 
> --- produces ---
> 
> 1,2,3,4
> (Array)#0
> [0] 1
> [1] 3
> (Array)#0
> [0] 2
> [1] 4
> 1,2,3,4
> 
> I don't think ListCollectionView composes filterFunctions.
> 
> -- 
> Maciek Sakrejda
> Truviso, Inc.
> http://www.truviso.com
> 
> -----Original Message-----
> From: Cato Paus <[EMAIL PROTECTED]>
> Reply-To: flexcoders@yahoogroups.com
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Help: filterFunction and Dates
> Date: Thu, 23 Oct 2008 17:02:27 -0000
> 
> Hi if you use java as backend do you serilaze the object ?
> 
> if so you can map the date objec to the date object in actionscript
and
> back..
> 
> here is a datefilter connetced to a arraycollection.
> 
> public function chkToDay():void
> {
> //Allways set to null first!!!! else you get filter inside
> the filter!
> myArrayCollection.filterFunction=null;
> myArrayCollection.refresh();
> myArrayCollection.filterFunction=toDayDateFilterFunc;
> /* Refresh the collection view to apply the filter. */
> myArrayCollection.refresh();
> }
> 
> and the filter function
> 
> private function toDayDateFilterFunc(item:Object):Boolean
> {
> var toDay:Date = new Date();
> //item.date is if you have a public var named date in your
> DTO(Data Transfer Object)
> return item.date== toDay;
> }
> 
> Cato
> 
> --- In flexcoders@yahoogroups.com, "cox.blair" <blair.cox@> wrote:
> >
> > Hi everyone,
> >
> > With the help of another poster I was pointed in the correct
direction
> > to solve a problem I have:
> >
> > The two links were helpful:
> >
> >
>
http://livedocs.adobe.com/flex/3/html/help.html?content=controls_12.html
> >
> >
>
http://blog.flexexamples.com/2008/03/12/using-a-combobox-to-filter-items
> \
> -in-a-datagrid-in-flex/
> >
> > Based on the above information, I was able to accomplish all my
tasks,
> > except being able to sort dates.
> >
> > Problem #1 - How to format the date so that it displays as
2008-10-01.
> > I have it all the way up to 2008-10-1. Apparently the 'day' is
> > represented as a single digit. That won't work - using a MySQL db.
> >
> > Problem #2 - I am apparently lacking in my knowledge of ActionScript
> > to correctly write the proper script to filter the date. What I
can't
> > seem to figure out is the correct syntax for working with dates, or
> > perhaps simply a string or number containing "-" dashes?
> >
> > Sorry, I'm not providing code you to ponder over, I really only need
a
> > reference to start with so I can learn as I go. I've been searching
> > but have not been able to locate a reference which deals with
sorting
> > dates?
> >
> > Thanks,
> >
>




 


Reply via email to