Hi shankar,
Try this one. This may help you.
There is a property called creationPolicy and set it to "all".
This is a property for containers and this property initializes all its
child components of a parent component.


On 3/12/09, Sankar <[email protected]> wrote:
>
>
>
> That is not the reason because even if i create the initData array
> collection object with the new keyword am getting the same error.
>
> See even if you create with new keyword, you don't have data
> property available since you don't have the data getting bounded to
> the array collection object and it is a null only but where as
> itemRenderer is getting executing by that time.This is the reason am
> getting the error.
>
> I think the solution is that itemrenderer should be executed only
> when the data gets bounded to initData.
>
> Thanks
>   sankar
> On Mar 12, 5:21 pm, Ravi Mishra <[email protected]> wrote:
> > I got the problem when your application loads it finds the initData as
> > null because you have assigned the null value to it and that is why
> > you are getting the error message.
> >
> > Try doing it using the new keyword. Like this
> >
> > [Bindable]
> > private var initData:ArrayCollection = new ArrayCollection();
> >
> > HTH,
> >
> > -Ravi
> >
> > On Mar 12, 2:10 pm, Sankar <[email protected]> wrote:
> >
> > > here am sending only the Application file and am using the  same
> > > itemrenderer which is in my previous posts.
> >
> > >    Application File:
> >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > > layout="absolute" initialize="initList()" creationComplete="getData()>
> >
> > >        <mx:Script>
> > >                 <![CDATA[
> > >                         import mx.collections.ArrayCollection;
> >
> > >                         [Bindable]
> > >                         private var initData:ArrayCollection = null;
> >
> > >                         private function initList():void {
> > >                             addEventListener("getItems",
> > > getItemsEventHandler);
> > >                         }
> >
> > >                         private function getData():void
> > > {
> > >                                     try {
> > >                                             //am calling the backend
> method here
> > >                                             (services code which
> actually calls the backend
> > > code using Remote Object)
> > >                                     }
> > >                                     catch(errObject:Error) {
> > >                                       trace(errObject.message);
> > >                                     }
> > >                             }
> >
> > >                             private function getItemsEventHandler
> > > (event:GetTodoItemsResultEvent):void {
> >
> > >                                     initData = event.result;
> > >                         }
> > >                 ]]>
> > >         </mx:Script>
> >
> > >         <mx:List dataProvider="{initData}" width="50%" height="50%"
> > >                  itemRenderer="components.RendererInAS"/>
> >
> > > </mx:Application>
> >
> > > On Mar 12, 1:40 pm, Ravi Mishra <[email protected]> wrote:
> >
> > > > Can you pls send the code where you are declaring the
> arraycollection?
> >
> > > > -Ravi
> >
> > > > On Mar 12, 12:24 pm, Sankar <[email protected]> wrote:
> >
> > > > > Hi,
> > > > >       It works fine, if the data(ArrayCollection) is static but it
> > > > > doesn't work if the data is dynamic i.e if you try to get the data
> > > > > from the database and am getting the runtime error as shown below
> >
> > > > >          Cannot access a property or method of a null object
> > > > > reference
> >
> > > > > at the line where we were setting the value to the labels in the
> > > > > commitProprties() method.Since we all know that, child component
> > > > > elements(controls) will be created and initialized first and then
> > > > > parent components will be created and initialized.In my parent
> > > > > component am firing the creationComplete event to get the data from
> > > > > the Database and it will be fired after the child components has
> been
> > > > > created and initialized.
> >
> > > > >      In this case, first item renderer written in action script
> will
> > > > > be executed and in that we were trying to set the values to labels
> and
> > > > > the data property not available by that time and then
> creationComplete
> > > > > event of it's parent component gets fired and now we will have the
> > > > > data from the database.I think from 2nd time onwards data property
> > > > > will be available.
> >
> > > > >  How do i solve this problem? I think itemrenderer should be
> executed
> > > > > only when the data from the database gets bounded to
> arrayCollection
> > > > > object.
> > > > > Is it correct?
> >
> > > > >   Please, Can anyone help me ?
> >
> > > > >  Thanks
> > > > >    sankar
> >
> > > > > On Mar 11, 7:45 pm, Sankar <[email protected]> wrote:
> >
> > > > > > Hi Ravi,
> >
> > > > > >   I have seen your latest post and my problem got solved now.As
> you
> > > > > > said i added that statement and it works fine.
> >
> > > > > >  Thanks
> > > > > >    sankar
> >
> > > > > > On Mar 11, 7:11 pm, Ravi Mishra <[email protected]> wrote:
> >
> > > > > > > Check out my second post in this thread which is as follows
> >
> > > > > > > I am sorry that I misunderstood your question.
> >
> > > > > > > You actually missed out a statement in createChildren Method.
> Just add
> > > > > > > 'this.addChild(hBox);' at the end of createChildren method.
> >
> > > > > > > HTH,
> >
> > > > > > > -Ravi
> >
> > > > > > > On Mar 11, 4:15 pm, Sankar <[email protected]> wrote:
> >
> > > > > > > > Hi Ravi Mishra,
> >
> > > > > > > >   I already have seen this example but it doesn't help me .
> In this
> > > > > > > > example data getting displayed with the help of
> DataGridColumn and in
> > > > > > > > the itemRenderer written in actionScript just does the
> decoration by
> > > > > > > > overriding the setter for data property.
> >
> > > > > > > >   But what am i trying to do is i wanted to laydown the
> controls also
> > > > > > > > in the action script itself like how we use the containers
> say HBox in
> > > > > > > > the custom itemRenderer in MXML and data proprty.  I think in
> this
> > > > > > > > case the link what you send doesn't help me.
> >
> > > > > > > >  Thanks
> > > > > > > >    sankar
> >
> > > > > > > > On Mar 11, 1:52 pm, Ravi Mishra <[email protected]>
> wrote:
> >
> > > > > > > > > Hi Sankar,
> >
> > > > > > > > > You are on the wrong way. This is not the way you write an
> > > > > > > > > itemRenderer. Please refer the folllowing link to get a
> clear idea
> > > > > > > > > about itemrenderers in actionscript.
> >
> > > > > > > > >
> http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/ww...
> >
> > > > > > > > > HTH,
> >
> > > > > > > > > -Ravi
> >
> > > > > > > > > On Mar 11, 9:31 am, Sankar <[email protected]>
> wrote:
> >
> > > > > > > > > > Hi All,
> >
> > > > > > > > > >  am trying to build item renderer for a List component in
> action
> > > > > > > > > > script rather than in mxml. In the action script class am
> creating a
> > > > > > > > > > HBox dynamically and adding Labels to is by overriding
> the
> > > > > > > > > > createChildern() and also overriding the
> updateDisplayList() and
> > > > > > > > > > commitProperties() and in which am setting the values to
> labels.
> >
> > > > > > > > > >           When i run the application in debug mode am
> able to see the
> > > > > > > > > > values being set to the labels but am not seeing the
> values getting
> > > > > > > > > > displayed in the List control.
> >
> > > > > > > > > >          Here am posting the code,so that the problem can
> be
> > > > > > > > > > identified.
> >
> > > > > > > > > > Can anyone help me how to resolve this problem?
> >
> > > > > > > > > > <?xml version="1.0" encoding="utf-8"?>
> > > > > > > > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
> "
> > > > > > > > > > layout="absolute">
> > > > > > > > > >         <mx:Script>
> > > > > > > > > >                 <![CDATA[
> > > > > > > > > >                         import
> mx.collections.ArrayCollection;
> >
> > > > > > > > > >                         [Bindable]
> > > > > > > > > >                         private var
> initData:ArrayCollection = new ArrayCollection([
> > > > > > > > > >                                 {task:"pay bill",
> category:"Office",priority:"Medium"},
> > > > > > > > > >                                 {task:"meet ravi on
> sunday",category:"personal",priority:"Low"},
> > > > > > > > > >                                 {task:"buy a
> book",category:"friends",priority:"Medium"},
> > > > > > > > > >                                 {task:"play
> cricket",category:"friends",priority:"Low"},
> > > > > > > > > >                                 ]);
> > > > > > > > > >                 ]]>
> > > > > > > > > >         </mx:Script>
> >
> > > > > > > > > >         <mx:List dataProvider="{initData}" width="50%"
> height="50%"
> > > > > > > > > >                  itemRenderer="components.RendererInAS"/>
> > > > > > > > > > </mx:Application>
> >
> > > > > > > > > >     ItemRenderer file :
> >
> > > > > > > > > > package components
> > > > > > > > > > {
> >
> > > > > > > > > >         import mx.containers.HBox;
> > > > > > > > > >         import mx.controls.Label;
> > > > > > > > > >         import mx.controls.listClasses.BaseListData;
> > > > > > > > > >         import
> mx.controls.listClasses.IDropInListItemRenderer;
> > > > > > > > > >         import mx.controls.listClasses.IListItemRenderer;
> > > > > > > > > >         import mx.core.UIComponent;
> > > > > > > > > >         import mx.events.FlexEvent;
> >
> > > > > > > > > >         public class RendererInAS extends UIComponent
> implements
> > > > > > > > > > IListItemRenderer {
> >
> > > > > > > > > >                 public function RendererInAS() {
> > > > > > > > > >                    super();
> > > > > > > > > >                 }
> >
> > > > > > > > > >              // Internal variable for the property value.
> > > > > > > > > >              private var _data:Object;
> >
> > > > > > > > > >              private var _listData:BaseListData;
> >
> > > > > > > > > >              // Make the data property bindable.
> > > > > > > > > >              [Bindable("dataChange")]
> >
> > > > > > > > > >              // Define the getter method.
> > > > > > > > > >              public function get data():Object {
> > > > > > > > > >                  return _data;
> > > > > > > > > >              }
> >
> > > > > > > > > >              // Define the setter method, and dispatch an
> event when the
> > > > > > > > > > property
> >
> > ...
> >
> > read more ยป
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to