Tracy,

Thank you very much!! It works!

--- In flexcoders@yahoogroups.com, "Gordon Smith" <[EMAIL PROTECTED]> wrote:
>
> Isn't it kind of strange to give your attributes names starting
with an
> @ sign? I don't think that's common in XML, unless its use is
dictated
> by somebody else.
>
> Also, there's no point in building up an XML string with the +
operator.
> You can use "XML literal" syntax in AS3:
>
>     private var gXMLDoc:XML =
>         <records>
>             <record>
>             ...
>         </records>;
>
> - Gordon
>
> -----Original Message-----
> From: flexcoders@yahoogroups.com
[mailto:[EMAIL PROTECTED] On
> Behalf Of Tracy Spratt
> Sent: Thursday, May 25, 2006 4:30 PM
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Re: How to populate an attribute value in
> DataGrid control?
>
> First, the sample xml in your post is not valid: the data nodes
have no
> closing taqs (or "/").  If we fix that then the example below works
for
> your xml.
>
> The key is to use the "attribute" method instead of the "@" symbol
to
> reference the attributes.
>
> Tracy
>
> <?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.controls.dataGridClasses.DataGridColumn;
>       private var gXMLDoc:XML;
>       private function initApp():void
>       {
>
>          var sXMLDoc:String =
>         '<records>' +
>           '<record>' +
>             '<data @name="firstname" @value="My_FirstName1" />' +
>             '<data @name="lastname" @value="My_LastName1" />' +
>           '</record>' +
>           '<record>' +
>             '<data @name="firstname" @value="My_FirstName2" />' +
>             '<data @name="lastname" @value="My_LastName2" />' +
>           '</record>' +
>         '</records>'
>     gXMLDoc = XML(sXMLDoc);
>     dg1.dataProvider = gXMLDoc.record;
>       }//initApp
>      
>       private function lfnGeneral(xmlItem:XML,
> column:DataGridColumn):String
>       {
>         var sLabel:String = "";
>         var sHeaderText:String = column.headerText;
>         switch (sHeaderText)  {
>           case "First Name":
>             sLabel = xmlItem.data[0].attribute("@value");
>             break;
>           case "Last Name":
>             sLabel = xmlItem.data[1].attribute("@value");
>             break;                                               
>         }
>
>         return sLabel;
>       }//lfGeneral
>
> ]]></mx:Script>
>
>       <mx:DataGrid id="dg1" labelFunction="lfnGeneral">
>    <mx:columns>
>       <mx:Array>
>          <mx:DataGridColumn headerText="First Name" />
>          <mx:DataGridColumn headerText="Last Name" />
>          </mx:Array>
>       </mx:columns>
>    </mx:DataGrid>
> </mx:Application>
>
>
>
> -----Original Message-----
> From: flexcoders@yahoogroups.com
[mailto:[EMAIL PROTECTED] On
> Behalf Of flexnewbie
> Sent: Thursday, May 25, 2006 5:39 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: How to populate an attribute value in
DataGrid
> control?
>
> Tracy,
>
> Thanks for the feedback.
>
> Unfortunately I cannot change the XML, the data is from third party
> provider. I tried it with labelFunction and @@, it does not work :-(
>
> var sFirstName:String = xmlRecord.data[0].(@@name ==
> "lastname").@@value;
>
>
> --- In flexcoders@yahoogroups.com, "Tracy Spratt" <tspratt@> wrote:
> >
> > First, the "@" in fornt of all the xml attributes might cause a
> problem.
> >
> > Second, The name/value pair structure of your xml is going to be
> > difficult to work with.  Are you stuck with that structure?
> >
> > If so you will need to use a labelFunction().  In that you will do
> > something like:
> >
> > var sFirstName:String = xmlRecord.data[0].(@@name ==
> > "lastname").@@value; //that is where those @ signe might cause a
> > problem.
> >
> > If you can change the xml format this can be much easier.
> >
> > Below is a sample app that uses labelFunction on fairly complex
xml.
> >
> > Tracy
> >
> > <?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.controls.dataGridClasses.DataGridColumn;
> >       private var gXMLDoc:XML;
> >       private function initApp():void
> >       {
> >              gXMLDoc =
> >         <users>
> >             <user>
> >                 <username gender="male">Joe</username>
> >                 <useremail>joe@</useremail>
> >                 <location id="001">
> >                      <city>Bedford</city>
> >                      <state>MA</state>
> >                 </location>
> >             </user>
> >             <user>
> >                 <username gender="female">Maggie</username>
> >                 <useremail>maggie@</useremail>
> >                 <location id="002">
> >                      <city>Lexington</city>
> >                      <state>MA</state>
> >                 </location>
> >             </user>
> >         </users>
> >     dg1.dataProvider = gXMLDoc.user;
> >       }//initApp
> >      
> >       private function lfnGeneral(item:Object,
> > column:DataGridColumn):String
> >       {
> >         var sLabel:String = ""
> >         var sHeaderText:String = column.headerText
> >         switch (sHeaderText)  {
> >           case "Name":
> >             sLabel = item.username;
> >             break;
> >           case "Email":
> >             sLabel = item.useremail;
> >             break;
> >           case "City":
> >             sLabel = item.location.city;
> >             break;
> >           case "State":
> >             sLabel = item.location.city;
> >             break;
> >           case "Gender":
> >             sLabel = [EMAIL PROTECTED];
> >             break;                                               
> >         }
> >
> >         return sLabel;
> >       }//lfGeneral
> >
> > ]]></mx:Script>
> >
> >       <mx:DataGrid id="dg1" labelFunction="lfnGeneral">
> >    <mx:columns>
> >       <mx:Array>
> >          <mx:DataGridColumn headerText="Name" />
> >          <mx:DataGridColumn headerText="Email" />
> >          <mx:DataGridColumn headerText="City" />
> >          <mx:DataGridColumn headerText="State" />
> >          <mx:DataGridColumn headerText="Gender" />
> >          </mx:Array>
> >       </mx:columns>
> >    </mx:DataGrid>
> > </mx:Application>
> >
> >
> >
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com
> [mailto:[EMAIL PROTECTED] On
> > Behalf Of flexnewbie
> > Sent: Thursday, May 25, 2006 2:47 PM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] How to populate an attribute value in
DataGrid
> > control?
> >
> > I can't figure out how to populate the "First Name" and "Last
> Name",
> > please help!
> > 
> > For Example,
> > XML:
> > <records>
> > <record>
> > <data @name="firstname" @value="My_FirstName1">
> > <data @name="lastname" @value="My_LastName1">
> > </record>
> > <record>
> > <data @name="firstname" @value="My_FirstName2">
> > <data @name="lastname" @value="My_LastName2">
> > </record>
> > </records>
> >
> > Source Code:
> > <mx:DataGrid id="feedRequest"
> > dataProvider="{feedRequest.result.records.record}">
> > <mx:DataGridColumn headerText="FirstName" dataField="" />
> > <mx:DataGridColumn headerText="LastName" dataField="" />
> > </mx:DataGrid>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> > Flexcoders Mailing List
> > FAQ:
> http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives:
> > http://www.mail-archive.com/flexcoders%40yahoogroups.com
> > Yahoo! Groups Links
> >
>
>
>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
>
>
>

>
>
>
>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives:
> http://www.mail-archive.com/flexcoders%40yahoogroups.com
> Yahoo! Groups Links
>






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com




SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS




Reply via email to