OK! Thats the ticket! It looks like that the *dataField *value for the mxml renderer:
<j:DataGridColumn label="Cargo" *dataField*="cargoContacto"itemRenderer="utils.renderers.CargoDataGridItemRenderer" /> maps to the *labelField *in the DataGridItemRenderer class, not to be mistaken for the label field of the dataGrid Column. a little confusing but glad to know whaich is the right one now! Cheers, David On Tue, 23 Mar 2021 at 14:39, Piotr Zarzycki <[email protected]> wrote: > David, > > Please check if you have labelField available and it's not null. > > Thanks, > Piotr > > wt., 23 mar 2021 o 13:47 David Slotemaker de Bruine < > [email protected]> napisał(a): > >> I have tried that too. If I change: >> >> this.text = value[datasField]; >> to >> this.text = value["propertyThatIWant"]; >> >> to works fine. For some reason "dataField" is not being filled in >> Javascript. >> >> D >> >> >> On Tue, 23 Mar 2021 at 13:29, Piotr Zarzycki <[email protected]> >> wrote: >> >>> Can you try to create this renderer in MXML as you did before and use >>> it? >>> >>> wt., 23 mar 2021 o 13:08 David Slotemaker de Bruine < >>> [email protected]> napisał(a): >>> >>>> Yes, it works if I Cast the Object, but I don't want to cast it, I want >>>> a generic Renderer that uses the "dataField" to get the value. >>>> >>>> On Tue, 23 Mar 2021 at 13:00, Maria Jose Esteve <[email protected]> >>>> wrote: >>>> >>>>> @David, Have you tried bindar only instead of override? >>>>> >>>>> >>>>> >>>>> I have not worked with DataGrid but with the itemrenderers for List I >>>>> do this: >>>>> >>>>> >>>>> >>>>> [Bindable("dataChange")] >>>>> >>>>> public function get >>>>> getReg():CTypeRegAvisosNet >>>>> >>>>> { >>>>> >>>>> if(!data) >>>>> >>>>> return new CTypeRegAvisosNet; >>>>> >>>>> else{ >>>>> >>>>> return data as CTypeRegAvisosNet; >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> (In my case I use a class type, but I imagine that with Object it will >>>>> be the same) >>>>> >>>>> >>>>> >>>>> Hiedra >>>>> >>>>> >>>>> >>>>> *De:* David Slotemaker de Bruine <[email protected]> >>>>> *Enviado el:* martes, 23 de marzo de 2021 12:39 >>>>> *Para:* [email protected] >>>>> *Asunto:* Re: Generic DataGrid Renderers >>>>> >>>>> >>>>> >>>>> Yes: >>>>> >>>>> >>>>> >>>>> <j:DataGridColumn label="Ciclo" dataField="ciclo" columnWidth="80" >>>>> itemRenderer="utils.renderers.StringDataGridItemRenderer"/> >>>>> >>>>> >>>>> >>>>> StringValue is a [Bindable] String var. that should hold the value of >>>>> the property "dataField" of the data Object. But as dataField evaluates >>>>> de >>>>> undefiend it get set to "". >>>>> >>>>> >>>>> >>>>> On Tue, 23 Mar 2021 at 12:26, Piotr Zarzycki < >>>>> [email protected]> wrote: >>>>> >>>>> Do you setup dateField in your DataGrid Column? ;) >>>>> >>>>> >>>>> >>>>> What is the stringValue ? >>>>> >>>>> >>>>> >>>>> On Tue, 23 Mar 2021 at 12:17, David Slotemaker de Bruine < >>>>> [email protected]> wrote: >>>>> >>>>> Hi Piotr, >>>>> >>>>> >>>>> >>>>> I have tried overriding the set data method. The problem is that >>>>> "dataField" is undefined. >>>>> >>>>> >>>>> >>>>> public override function set data(value:Object):void >>>>> { >>>>> super.data = value; >>>>> stringValue = value[dataField]; >>>>> this.text = stringValue; >>>>> } >>>>> >>>>> >>>>> >>>>> stringValue is cast to "". >>>>> >>>>> >>>>> >>>>> Any thoughts? >>>>> >>>>> >>>>> >>>>> On Tue, 23 Mar 2021 at 09:03, Piotr Zarzycki < >>>>> [email protected]> wrote: >>>>> >>>>> If that's the case I would remove everything in that item renderer, >>>>> override property data and there filter: >>>>> >>>>> >>>>> >>>>> super.data = value; >>>>> >>>>> if (!data) { >>>>> >>>>> this.text = ""; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> wt., 23 mar 2021 o 08:57 David Slotemaker de Bruine < >>>>> [email protected]> napisał(a): >>>>> >>>>> Yes! but I wanted to show that the basic version is not working! >>>>> >>>>> >>>>> >>>>> My backend returns string constants for null objects and null numbers, >>>>> I need to filter these out in the renderer. >>>>> >>>>> >>>>> >>>>> On Tue, 23 Mar 2021 at 08:39, Piotr Zarzycki < >>>>> [email protected]> wrote: >>>>> >>>>> Hi David, >>>>> >>>>> >>>>> >>>>> It looks like your DataGridItemRenderer is do same thing as the >>>>> default one, what's the point of creating this one ? Are you going to >>>>> expand it's functionality ? >>>>> >>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Piotr >>>>> >>>>> >>>>> >>>>> wt., 23 mar 2021 o 08:31 David Slotemaker de Bruine < >>>>> [email protected]> napisał(a): >>>>> >>>>> Hi All, >>>>> >>>>> I would like to create a generic Datagrid renderer for some of my VOs. >>>>> I have followed the example for TDJ but it's not going me any output or >>>>> error message. My code is the following: >>>>> <?xml version="1.0" encoding="utf-8"?> >>>>> <j:DataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" >>>>> xmlns:j="library://ns.apache.org/royale/jewel" >>>>> xmlns:js="library://ns.apache.org/royale/basic" >>>>> > >>>>> <fx:Script> >>>>> <![CDATA[ >>>>> [Bindable("dataChange")] >>>>> public function get stringValue():String >>>>> { >>>>> return data[dataField] as String; >>>>> } >>>>> >>>>> ]]> >>>>> </fx:Script> >>>>> <j:beads> >>>>> <j:HorizontalCenteredLayout/> >>>>> <js:ItemRendererDataBinding /> >>>>> </j:beads> >>>>> <j:Label text="{stringValue}"/> >>>>> </j:DataGridItemRenderer> >>>>> >>>>> Is it because I am using "data[dataField]"? If so what is the best way >>>>> to do this without having t create a specific Renderer for each column. >>>>> >>>>> Cheers, >>>>> >>>>> David >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *Piotr Zarzycki * >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *David Slotemaker de Bruïne* >>>>> *Head of Educational Robotics* >>>>> >>>>> >>>>> >>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>> >>>>> >>>>> T. +34 932 523 729 ext. 135 >>>>> >>>>> [email protected] >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *Piotr Zarzycki * >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *David Slotemaker de Bruïne* >>>>> *Head of Educational Robotics* >>>>> >>>>> >>>>> >>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>> >>>>> >>>>> T. +34 932 523 729 ext. 135 >>>>> >>>>> [email protected] >>>>> >>>>> -- >>>>> >>>>> *Piotr Zarzycki * >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *David Slotemaker de Bruïne* >>>>> *Head of Educational Robotics* >>>>> >>>>> >>>>> >>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>> >>>>> >>>>> T. +34 932 523 729 ext. 135 >>>>> >>>>> [email protected] >>>>> >>>> >>>> >>>> -- >>>> >>>> *David Slotemaker de Bruïne* >>>> *Head of Educational Robotics* >>>> >>>> >>>> >>>> Av. Sarriá, 130 - 08017 Barcelona >>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>> >>>> >>>> T. +34 932 523 729 ext. 135 >>>> >>>> [email protected] >>>> >>> >>> >>> -- >>> >>> Piotr Zarzycki >>> >> >> >> -- >> >> *David Slotemaker de Bruïne* >> *Head of Educational Robotics* >> >> >> >> Av. Sarriá, 130 - 08017 Barcelona >> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >> >> >> T. +34 932 523 729 ext. 135 >> >> [email protected] >> > > > -- > > Piotr Zarzycki > -- *David Slotemaker de Bruïne* *Head of Educational Robotics* Av. Sarriá, 130 - 08017 Barcelona <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> T. +34 932 523 729 ext. 135 [email protected]
