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>
>
> 

Reply via email to