Gordon, et al: Here is a simple test that will show the problem;
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.Alert; [Bindable] public var acData:ArrayCollection = new ArrayCollection; private function initApp():void { acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:1,col2:new Date (),col3:true,col4:"A"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:2,col2:new Date (),col3:null,col4:"B"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:3,col2:new Date (),col3:true,col4:"C"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:4,col2:new Date (),col3:null,col4:"D"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:5,col2:new Date (),col3:true,col4:"E"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); acData.addItem({col1:6,col2:new Date (),col3:false,col4:"F"}); acData.addItem ({col1:null,col2:null,col3:null,col4:null}); dgSortTest.dataProvider = acData; } ]]> </mx:Script> <mx:DataGrid id="dgSortTest" x="26" y="10"> <mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="col1"/> <mx:DataGridColumn headerText="Column 2" dataField="col2"/> <mx:DataGridColumn headerText="Column 3" dataField="col3"/> <mx:DataGridColumn headerText="Column 4" dataField="col4"/> </mx:columns> </mx:DataGrid> </mx:Application> --- In flexcoders@yahoogroups.com, "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > Your use case seem very reasonable to me. In this particular case I > disagree with my esteemed colleague Alex (who sits across from me)... I > think our default sorting routines should handle null values. So please > file this as a bug at http://bugs.adobe.com/flex and feel free to > mention that I consider it a bug. > > However, I agree with Alex that it probably will not get fixed in time > for the Flex 3 release, as the bar is currently extremely high for > making changes at this point. We've got to stabilize the release and get > it out! So you'll need to use a workaround for now. > > Gordon Smith > Adobe Flex SDK Team > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of aceoohay > Sent: Saturday, December 01, 2007 2:38 PM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] Re: If Flex is open source, how do we go about > changing the language? > > > > Gordon: > > This thread was not intended as a technical thread, which is why I > didn't include the details about the problem. I documented the > problem in the following post; > > http://tech.groups.yahoo.com/group/flexcoders/message/95131 > <http://tech.groups.yahoo.com/group/flexcoders/message/95131> > > The only responses I got seemed to indicate that the behavior was by > design, as opposed to a bug. > > Yes, it does throw a runtime error. > > I just signed up over at the Adobe bugs site. > > Paul > > --- In flexcoders@yahoogroups.com <mailto:flexcoders% 40yahoogroups.com> > , "Gordon Smith" <gosmith@> wrote: > > > > > it gets confused when there are nulls in date, numeric, or boolean > > fields > > > > > this is by design > > > > I doubt that we designed this code to intentionally get > confused. : ) It > > sounds like we're simply not properly handling null field values > when > > sorting. > > > > What do you mean by "get confused"? Does it throw an RTE? Do the > nulls > > cause incorrect sorting of the non-null values? Do the nulls not > sort > > together? How kind of sorting behavior do you think should occur > when > > there are null values? Should they sort before or after other > values? > > Please file the bug at htp://bugs.adobe.com/flex. > <htp://bugs.adobe.com/flex.> > > > > BTW, the Flex SDK is not yet open-source, but it will be soon. > > > > Gordon Smith > > Adobe Flex SDK Team > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders% 40yahoogroups.com> > > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders% 40yahoogroups.com> > ] On > > Behalf Of aceoohay > > Sent: Friday, November 30, 2007 9:33 PM > > To: flexcoders@yahoogroups.com <mailto:flexcoders% 40yahoogroups.com> > > Subject: [flexcoders] If Flex is open source, how do we go about > > changing the language? > > > > > > > > I just ran across what I consider a significant deficiency in Flex. > > To correct this problem would require an addition of two attributes > > to the mx:DataGridColumn class. > > > > I could make a change to my version of the language, or perhaps I > > could create an inherited class. However, I feel strongly that the > > problem is so fundamental that it should be changed in the > language. > > How do I go about making this happen? > > > > The problem is this; > > > > It appears that when sorting a DataGrid by clicking a column that > > Flex currently does its best to determine the data type and sorts > > based on that data type. The problem is that it gets confused when > > there are nulls in date, numeric, or boolean fields. When it gets > > confused it ralph's on its shoes (blows up). Based on my research, > > including reading a bit of the file sortField.as, this is by design. > > > > There is a way around it but it requires instantiating a compare > > function for each column that might get a null, and might be one of > > non string data types. The workaround is to create a function, and > > use the "sortCompareFunction" attribute to call a that function. > > There is even a kludgier workaround to make the function generic by > > using the "headerRelease" attribute of the DataGrid to update a > > public variable with the column number. > > > > Since it seems as though this is an ubiquitous problem, it should > be > > solved in the language itself. The best approach that I came up > with > > is to have two new attributes for the mx:DataGridColumn; > > > > sortDataType - Basically specify the type of data contained in the > > column that would be honored by the sort routine irrespective of > the > > values contained in the column. Values would be any valid data type. > > > > sortNullCollatingSequence - This would define whether nulls get > > sorted to the top or bottom of the list. Values would be low - > which > > would indicate that nulls would sort lower than the lowest normal > > value, and high - which would indicate that nulls would sort higher > > than the highest normal value. > > > > This is one possible solution, there may be better ones but in my > > opinion the current method should be improved. I would like to see > it > > implemented quickly as I believe it is a serious problem. > > > > How do I go about getting this taken seriously, and not assigned > > an "enhancement request number" and never looked at again? > > > > Paul > > >