Because in the line, return publishDate.format(dateItem[dateColumn.dataField]);
dateItem[dateColumn.dataField] is an XML object, not a string, and the date formatter doesn't like that. Try adding toString() after it and it should work, i.e. return publishDate.format(dateItem[dateColumn.dataField].toString()); 2009/2/27 <[email protected]>: > Why does my dateformater NOT work in my grid (below) if > I specify the resultformat as E4X? Thats the only difference > I can see in the grids below. > Grids 1 and 2 are not e4X and yet they display the date as processed by the > dateformatter. > > Grids 3 and 4 are e4x and the field is just blank for them. > > Hopefully I'm not being bone-headed! > > thanks in advance, > brad > > Relevant Code Snippets follows > > <mx:DateFormatter id="publishDate" formatString="MMMM DD, YYYY" /> > ****************************************************** > private function dateFormat(dateItem:Object, > dateColumn:DataGridColumn):String > { > return publishDate.format(dateItem[dateColumn.dataField]); > } > > [Bindable] private var bookStock:ArrayCollection; > private function bookHandler(evt:ResultEvent):void > { > bookStock = evt.result.books.stock; > } > > [Bindable] private var bookStock2:XMLList; > private function bookHandler2(evt:ResultEvent):void > { > bookStock2 = evt.result.stock > } > > [Bindable] private var bookStock3_List:XMLListCollection; > private function bookHandler3(evt:ResultEvent):void > { > var bookStock3:XMLList = new XMLList(evt.result.stock); > bookStock3_List = new XMLListCollection (bookStock3); > } > > ****************************************************** > <mx:HTTPService id="bookData" url="assets/books2.xml" /> > > <mx:HTTPService id="bookData2" url="assets/books2.xml" > result="bookHandler(event)" > fault="faultHandler(event)" > /> > <mx:HTTPService id="bookData3" url="assets/books2.xml" > result="bookHandler2(event)" > resultFormat="e4x"/> > > <mx:HTTPService id="bookData4" url="assets/books2.xml" > result="bookHandler3(event)" > resultFormat="e4x"/> > ******************************************************** > <mx:DataGrid id="dg2" x="42" y="125" width="950" height="100" > dataProvider="{bookStock}" > > <mx:columns> > <mx:DataGridColumn dataField="name" headerText="name"/> > <mx:DataGridColumn dataField="author" headerText="author"/> > <mx:DataGridColumn dataField="category" headerText="category"/> > <mx:DataGridColumn dataField="description" headerText="description"/> > <mx:DataGridColumn dataField="publish_date" > headerText="publish date" > labelFunction="dateFormat"/> > </mx:columns> > </mx:DataGrid> > > <mx:DataGrid id="dg3" x="42" y="250" width="950" height="100" > dataProvider="{bookStock2}" > > <mx:columns> > <mx:DataGridColumn dataField="name" headerText="name"/> > <mx:DataGridColumn dataField="author" headerText="author"/> > <mx:DataGridColumn dataField="category" headerText="category"/> > <mx:DataGridColumn dataField="description" headerText="description"/> > <mx:DataGridColumn dataField="publish_date" > headerText="publish date" > labelFunction="dateFormat"/> > </mx:columns> > </mx:DataGrid> > >

