Since I didn't get a lot of response on my problem with creating an 
itemRenderer, I've decided I can probably get around the issue by using a 
different approach. The following model behaves the way I want it to:
 
    <mx:Model id="mytestlist">
     <ArrayOfMemberSearchList>
   <MemberSearchList>
     <ID>414</ID> 
     <Display>Doe, Jane</Display> 
     <MemberStatus>O</MemberStatus> 
    </MemberSearchList>
   <MemberSearchList>
     <ID>109</ID> 
     <Display>Smith, John</Display> 
     <MemberStatus>C</MemberStatus> 
    </MemberSearchList>
   </ArrayOfMemberSearchList>   
    </mx:Model>
 
So I'm thinking I can just build an Object of this structure manually using 
Action Script in the Flex results handler of my web service.  The only thing 
is, "Model" is not a class. How to I create an object like the one above "on 
the fly" using action script?
 
Thanks,
Robb

 
________________________________

From: [email protected] on behalf of Robb Cundick
Sent: Tue 1/30/2007 9:28 AM
To: [email protected]
Subject: RE: [flexcoders] RE: ItemRenderer Problem



Hmmm...  I re-checked and I did indeed send my original message to [EMAIL 
PROTECTED] <mailto:[EMAIL PROTECTED]>  Perhaps you received a private copy 
because I'm a new member of the list?

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Tracy 
Spratt
Sent: Tuesday, January 30, 2007 9:18 AM
To: [email protected]
Subject: [flexcoders] RE: ItemRenderer Problem

 

I don't answer private requests for help (for free, that is).  I am very 
willing to try to help, but I require that my work benefit the entire 
community, not just one person.

 

Take this question ot one of the public lists like flexcoders or the Adobe 
forums.

 

Tracy

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Robb 
Cundick
Sent: Tuesday, January 30, 2007 1:00 AM
To: [email protected]
Subject: ItemRenderer Problem

 

Hello, I'm a Flex newbie in need of some help.

I'm grabbing an array of data from a Web service and displaying it in a List 
component. On the Flex side I store the data in an ArrayCollection, the name of 
which I set as the Data Provider for my list. I have a field called "Display" 
which I set as the List's labelField. 

Everything works fine, but then I wanted to get a little fancier and vary the 
color of each line based on another field called "MemberStatus." To do that I 
wrote an ItemRenderer component which contains a label that I use to vary the 
text display.

In the itemRenderer I override the "set data" function, expecting that I can 
then use the supplied Object parameter to reference both the "Display" field to 
set as the text of the label, and the "MemberStatus" field to determine the 
text color I want for the label. Unfortunately, things don't work as I think 
they should. If I override "set data" as follows:

override public function set data(oItem:Object):void
{
  displayItem.text = oItem.Display;
  (Followed by additional code using oItem.MemberStatus to determine the color)
}


I get the following error:

ReferenceError: Error #1069: Property Display not found on String and there is 
no default value.
 at memberListRenderer/set data()
 at 
mx.controls::List/http://www.adobe.com/2006/flex/mx/internal::setupRendererFromData()
 at mx.controls::List/measureWidthOfItems()
 at mx.controls::List/mx.controls:List::commitProperties()
 at mx.core::UIComponent/validateProperties()
 at mx.managers::LayoutManager/::validateProperties()
 at mx.managers::LayoutManager/::doPhasedInstantiation()
 at Function/http://adobe.com/AS3/2006/builtin::apply()
 at mx.core::UIComponent/::callLaterDispatcher2()
 at mx.core::UIComponent/::callLaterDispatcher()

Here's a sample of the output of the web service:

<?xml version="1.0" encoding="utf-8" ?> 
  <ArrayOfMemberSearchList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
<http://www.w3.org/2001/XMLSchema-instance> " 
xmlns:xsd="http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema> 
" xmlns="http://tempuri.org/ <http://tempuri.org/> ">
    <MemberSearchList>
      <ID>414</ID> 
      <Display>Doe, Jane</Display> 
      <MemberStatus>O</MemberStatus> 
    </MemberSearchList>
    <MemberSearchList>
     <ID>109</ID> 
      <Display>Smith, John</Display> 
      <MemberStatus>C</MemberStatus> 
    </MemberSearchList>
  </ArrayOfMemberSearchList>

If I just insert the above data exactly "as is" in a test program as type 
mx:Model I have no problem; the oItem.Display and oItem.MemberStatus fields are 
"legal" and yield the results I want.  But when I use the web service I get the 
error. 

I can set the label in the itemRenderer to have a data provider of 
{data.Display} and it works using the web service. But that doesn't do me any 
good because I have  no way to access the MemberStatus field and alter the 
color. Obviously the problem has something to do with the oItem field in "set 
data" not being what I think it is. Does anyone know what I'm doing wrong?

TIA,
Robb

 

<<winmail.dat>>

Reply via email to