<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flex Examples &#187; itemToLabel()</title>
	<atom:link href="http://blog.flexexamples.com/tag/itemtolabel/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flexexamples.com</link>
	<description>Just a bunch of Adobe Flex Examples</description>
	<lastBuildDate>Wed, 26 Jan 2011 18:09:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Setting a DataGrid control&#8217;s data provider to an XML object in Flex</title>
		<link>http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/</link>
		<comments>http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 06:05:21 +0000</pubDate>
		<dc:creator>Peter deHaan</dc:creator>
				<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[DataGridColumn]]></category>
		<category><![CDATA[NumericCompare]]></category>
		<category><![CDATA[itemToLabel()]]></category>
		<category><![CDATA[labelFunction]]></category>
		<category><![CDATA[sortCompareFunction]]></category>
		<category><![CDATA[stringCompare]]></category>

		<guid isPermaLink="false">http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/</guid>
		<description><![CDATA[<p>The following example shows how you can use an XML object as a data provider for a Flex DataGrid control and use a custom label function to display the XML node&#8217;s name.</p> <p>Full code after the jump.</p> <p></p> <p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/srcview/source/main.mxml.html">View MXML</a></p> &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;!-- http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/ --&#62; &#60;mx:Application name="DataGrid_dataProvider_XML_test2" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white"&#62; &#60;mx:Script&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>The following example shows how you can use an XML object as a data provider for a Flex DataGrid control and use a custom label function to display the XML node&#8217;s name.</p>
<p>Full code after the jump.</p>
<p><span id="more-858"></span></p>
<p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/srcview/source/main.mxml.html">View MXML</a></p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!-- http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/ --&gt;
&lt;mx:Application name="DataGrid_dataProvider_XML_test2"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white"&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            import mx.controls.dataGridClasses.DataGridColumn;
            import mx.utils.ObjectUtil;

            private function labelFunc(item:XML, col:DataGridColumn):String {
                return item.name();
            }

            private function nameSortCompareFunc(itemA:XML, itemB:XML):int {
                return ObjectUtil.stringCompare(dataGridCol1.itemToLabel(itemA), dataGridCol1.itemToLabel(itemB), true);
            }

            private function typeSortCompareFunc(itemA:XML, itemB:XML):int {
                return ObjectUtil.numericCompare(itemA.@type, itemB.@type);
            }
        ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:XML id="xmlDP" source="data/log.xml" /&gt;

    &lt;mx:DataGrid id="dataGrid"
            dataProvider="{xmlDP.children()}"
            verticalScrollPolicy="on"&gt;
        &lt;mx:columns&gt;
            &lt;mx:DataGridColumn id="dataGridCol1"
                    headerText="Name"
                    labelFunction="labelFunc"
                    sortCompareFunction="nameSortCompareFunc"
                    width="80"/&gt;
            &lt;mx:DataGridColumn id="dataGridCol2"
                    dataField="@type"
                    headerText="Type"
                    sortCompareFunction="typeSortCompareFunc"
                    width="50" /&gt;
            &lt;mx:DataGridColumn id="dataGridCol3"
                    dataField="@message"
                    headerText="Message"
                    width="200" /&gt;
        &lt;/mx:columns&gt;
    &lt;/mx:DataGrid&gt;

&lt;/mx:Application&gt;
</pre>
<p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/srcview/source/data/log.xml.txt">data/log.xml</a></p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!-- http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/ --&gt;
&lt;log&gt;
    &lt;error type="13" message="Cannot do something or other." /&gt;
    &lt;warning type="49" message="Whoa, that was close!" /&gt;
    &lt;error type="134" message="Abort! Abort!" /&gt;
    &lt;error type="99" message="Wait, do you smell smoke?" /&gt;
&lt;/log&gt;
</pre>
<p class="information"><a href="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/srcview/index.html">View source</a> is enabled in the following example.</p>
<p><iframe src="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/main.html" width="100%" height="220"></iframe></p>
<p>Due to popular demand, here is the &#8220;same&#8221; example in a more ActionScript friendly format:</p>
<p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/DataGrid_dataProvider_XML_test2/bin/srcview/source/main2.mxml.html">View MXML</a></p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!-- http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/ --&gt;
&lt;mx:Application name="DataGrid_dataProvider_XML_test2"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white"
        initialize="init();"&gt;

    &lt;mx:XML id="xmlDP" source="data/log.xml" /&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            import mx.core.ScrollPolicy;
            import mx.controls.DataGrid;
            import mx.controls.dataGridClasses.DataGridColumn;
            import mx.utils.ObjectUtil;

            private var dataGrid:DataGrid;
            private var dataGridCol1:DataGridColumn;
            private var dataGridCol2:DataGridColumn;
            private var dataGridCol3:DataGridColumn;

            private function init():void {
                dataGridCol1 = new DataGridColumn();
                dataGridCol1.headerText = "Name";
                dataGridCol1.labelFunction = labelFunc;
                dataGridCol1.sortCompareFunction = nameSortCompareFunc;
                dataGridCol1.width = 80;

                dataGridCol2 = new DataGridColumn("@type");
                dataGridCol2.headerText = "Type";
                dataGridCol2.sortCompareFunction = typeSortCompareFunc;
                dataGridCol2.width = 50;

                dataGridCol3 = new DataGridColumn("@message");
                dataGridCol3.headerText = "Message";
                dataGridCol3.width = 200;

                dataGrid = new DataGrid();
                dataGrid.columns = [dataGridCol1, dataGridCol2, dataGridCol3];
                dataGrid.dataProvider = xmlDP.children();
                dataGrid.verticalScrollPolicy = ScrollPolicy.ON;
                addChild(dataGrid);
            }

            private function labelFunc(item:XML, col:DataGridColumn):String {
                return item.name();
            }

            private function nameSortCompareFunc(itemA:XML, itemB:XML):int {
                return ObjectUtil.stringCompare(dataGridCol1.itemToLabel(itemA), dataGridCol1.itemToLabel(itemB), true);
            }

            private function typeSortCompareFunc(itemA:XML, itemB:XML):int {
                return ObjectUtil.numericCompare(itemA.@type, itemB.@type);
            }
        ]]&gt;
    &lt;/mx:Script&gt;

&lt;/mx:Application&gt;
</pre>
<div class="evernoteSiteMemory"><a href="javascript:" onclick="Evernote.doClip({title: 'Setting a DataGrid control\&#039;s data provider to an XML object in Flex on FlexExamples.com',url: 'http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/',contentID: 'post-858',code: 'Pete9667',suggestNotebook: 'FlexExamples',suggestTags: 'itemToLabel(),labelFunction,sortCompareFunction,stringCompare',providerName: 'FlexExamples.com',styling: 'text' });return false" class="evernoteSiteMemoryLink"><img src="http://static.evernote.com/article-clipper-remember.png" class="evernoteSiteMemoryButton" />
				</a>				<div class="evernoteSiteMemoryClear">&nbsp;</div>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.flexexamples.com/2008/11/05/setting-a-datagrid-controls-data-provider-to-an-xml-object-in-flex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

