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]

Reply via email to