Well, I don't see it as a shortcoming that we default to efficient sort
algorithms that assume that all values are of the same type.  Seems like
all you need is a comparefunction for dates and one for numbers and
assign the correct function to the appropriate column.  Also note that
if you sort with nulls for data that hasn't arrived yet, you'll probably
have to re-sort as the data arrives.  The collections generally wait
until all data has arrived to do the sort so it doesn't have to keep
resorting as data has arrived.
 
So, you could wait for all data to arrive as well, or maybe monkey-patch
the sort code to handle null.  You can file an enhancement request, but
I don't see it getting done in 3.0

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of aceoohay
Sent: Friday, November 30, 2007 9:13 AM
To: [email protected]
Subject: [flexcoders] Re: Sorting problem on date and numbers with null
values, I think



What is the workaround?

The sortCompareFunction does not seem to be reasonable, since a 
version needs to be written for each column in each grid.

This seems like a serious shortcoming...

Paul

--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "Alex Harui" <[EMAIL PROTECTED]> wrote:
>
> THe default sort code can't handle null as it isn't a date or 
number
> 
> ________________________________
> 
> From: [email protected] <mailto:flexcoders%40yahoogroups.com>

[mailto:[email protected] <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of aceoohay
> Sent: Thursday, November 29, 2007 8:49 PM
> To: [email protected] <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] Re: Sorting problem on date and numbers with 
null
> values, I think
> 
> 
> 
> When I said no values returned from the DB, I meant that the grid 
is 
> populated with some records that have the values in the 
number/date 
> column, and others that don't.
> 
> Paul
> --- In [email protected]
<mailto:flexcoders%40yahoogroups.com>  <mailto:flexcoders%
40yahoogroups.com>
> , "aceoohay" <pauls@> wrote:
> >
> > I running flexbuilder 2.0.1, AS 3.
> > 
> > I have a number of datagrids. In two of my grids I have date and 
> > number fields that sometimes have no values returned from the 
DB. 
> > When I click the heading on these columns to sort Ascending they 
> work 
> > fine. When I click a second time (descending) I get the 
following 
> > error;
> > 
> > ===============================================================
> > Error: Cannot determine comparator for SortField with 
> > name ''MyNumberDataField''.
> > at mx.collections::SortField/::nullCompare()
> > at 
> > 
> 
mx.collections::SortField/http://www.adobe.com/2006/flex/mx/internal:
<http://www.adobe.com/2006/flex/mx/internal:> 
:
> <http://www.adobe.com/2006/flex/mx/internal::
<http://www.adobe.com/2006/flex/mx/internal::> > 
> > internalCompare()
> > at mx.collections::Sort/::internalCompare()
> > at mx.collections::Sort/findItem()
> > at mx.collections::ListCollectionView/getItemIndex()
> > at ::ListCollectionViewCursor/::collectionEventHandler()
> > at 
> > 
> 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
v
> > entFunction()
> > at flash.events::EventDispatcher/dispatchEvent()
> > at mx.collections::ListCollectionView/dispatchEvent()
> > at mx.collections::ListCollectionView/::internalRefresh()
> > at mx.collections::ListCollectionView/refresh()
> > at mx.controls::DataGrid/::sortByColumn()
> > at mx.controls::DataGrid/::headerReleaseHandler()
> > at 
> > 
> 
flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchE
v
> > entFunction()
> > at flash.events::EventDispatcher/dispatchEvent()
> > at mx.core::UIComponent/dispatchEvent()
> > at mx.controls::DataGrid/mx.controls:DataGrid::mouseUpHandler
> > ()
> > ===============================================================
> > 
> > I am not using a sort compare function anywhere. I have other 
text 
> > type fields with nulls that seem to sort correctly.
> > 
> > This seems like a bug. 
> > 
> > Any ideas?
> > 
> > Paul
> >
>



 

Reply via email to