On 27/05/2007, at 21:57, André Rodrigues Pena wrote:
Although when I try to populate de DataGrid, I can't set a
DataGridColumn to display the property "name" within the property
"product" from the data provider. The code is the following:
<mx:DataGrid id="datagrid" dataProvider="{sales}" width="100%"
height="100%">
<mx:columns>
<mx:DataGridColumn dataField="id" headerText="Id"/>
<mx:DataGridColumn dataField="product.name" headerText="Product"/>
<mx:DataGridColumn dataField="customer.name" headerText="Customer"/>
</mx:columns>
</mx:DataGrid>
Only the simple attribute "id" is properly displayed in the DataGrid
Why? What can I do?
.
The way I solved it was by using a custom label function for each
column. Instead of specifying a dataField, you define the following
function inside a script tag:
function myCustomDataLabelFunction(item:Object,
column:DataGridColumn):String
{
return item.product.name;
}
Then you declare the column like this:
<mx:DataGridColumn labelFunction="myCustomDataLabelFunction"
headerText="Product"/>
Basically, your label function gets invoked on each item, when the
column needs to know what to display on that row. And you have to
return the value you want to be displayed.
I hope this helped,
Andrea.