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]
