You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@flex.apache.org by mark goldin <ma...@gmail.com> on 2013/07/22 23:25:37 UTC
Spark DataGrid with combobox
I have a column with combobox as an item renderer. The combo has a simple
dataProvider like Yes, No. When I scroll the grid values in combos are
changing. Here is relative code from my renderer, simplified:
override public function set data(value:Object):void
{
super.data = value;
if (data)
{
answer.dataProvider = externaldataprovider;
for (var i:Number = 0; i < answer.dataProvider.length; i++)
{
var obj:Object = Object(answer.dataProvider[i])
if (obj["CodeValue"] == data.Answer)
{
answer.selectedIndex = i;
break;
}
}
}
}
}
Thanks
Re: Spark DataGrid with combobox
Posted by mark goldin <ma...@gmail.com>.
Looks like it does not work when I refresh DataGrid's DataProvider
dataProvider as ArrayCollection.refresh();
On Mon, Jul 22, 2013 at 5:51 PM, Michael Baird <mb...@kairyt.com> wrote:
> If you don't clear the provider as Lee suggests, you could also set the
> selected index to -1 or whatever your default option is.
>
> If you're extending GridItemRenderer, it's recommended to also use override
> *prepare()* instead of *set data* for performance reasons.
>
>
> On Mon, Jul 22, 2013 at 3:43 PM, Lee Burrows
> <su...@leeburrows.com>wrote:
>
> > could the issue be related to not clearing your renderer of its previous
> > values when data=null?
> >
> > eg:
> >
> > if (data)
> > //your code
> > else
> > answer.dataProvider = null;
> >
> >
> >
> >
> > On 22/07/2013 22:25, mark goldin wrote:
> >
> >> I have a column with combobox as an item renderer. The combo has a
> simple
> >> dataProvider like Yes, No. When I scroll the grid values in combos are
> >> changing. Here is relative code from my renderer, simplified:
> >> override public function set data(value:Object):void
> >> {
> >> super.data = value;
> >> if (data)
> >> {
> >> answer.dataProvider = externaldataprovider;
> >>
> >> for (var i:Number = 0; i < answer.dataProvider.length; i++)
> >> {
> >> var obj:Object = Object(answer.dataProvider[i])
> >> if (obj["CodeValue"] == data.Answer)
> >> {
> >> answer.selectedIndex = i;
> >> break;
> >> }
> >> }
> >> }
> >> }
> >> }
> >>
> >> Thanks
> >>
> >>
> >
> > --
> > Lee Burrows
> > ActionScripter
> >
> >
>
Re: Spark DataGrid with combobox
Posted by Michael Baird <mb...@kairyt.com>.
If you don't clear the provider as Lee suggests, you could also set the
selected index to -1 or whatever your default option is.
If you're extending GridItemRenderer, it's recommended to also use override
*prepare()* instead of *set data* for performance reasons.
On Mon, Jul 22, 2013 at 3:43 PM, Lee Burrows
<su...@leeburrows.com>wrote:
> could the issue be related to not clearing your renderer of its previous
> values when data=null?
>
> eg:
>
> if (data)
> //your code
> else
> answer.dataProvider = null;
>
>
>
>
> On 22/07/2013 22:25, mark goldin wrote:
>
>> I have a column with combobox as an item renderer. The combo has a simple
>> dataProvider like Yes, No. When I scroll the grid values in combos are
>> changing. Here is relative code from my renderer, simplified:
>> override public function set data(value:Object):void
>> {
>> super.data = value;
>> if (data)
>> {
>> answer.dataProvider = externaldataprovider;
>>
>> for (var i:Number = 0; i < answer.dataProvider.length; i++)
>> {
>> var obj:Object = Object(answer.dataProvider[i])
>> if (obj["CodeValue"] == data.Answer)
>> {
>> answer.selectedIndex = i;
>> break;
>> }
>> }
>> }
>> }
>> }
>>
>> Thanks
>>
>>
>
> --
> Lee Burrows
> ActionScripter
>
>
Re: Spark DataGrid with combobox
Posted by Lee Burrows <su...@leeburrows.com>.
could the issue be related to not clearing your renderer of its previous
values when data=null?
eg:
if (data)
//your code
else
answer.dataProvider = null;
On 22/07/2013 22:25, mark goldin wrote:
> I have a column with combobox as an item renderer. The combo has a simple
> dataProvider like Yes, No. When I scroll the grid values in combos are
> changing. Here is relative code from my renderer, simplified:
> override public function set data(value:Object):void
> {
> super.data = value;
> if (data)
> {
> answer.dataProvider = externaldataprovider;
>
> for (var i:Number = 0; i < answer.dataProvider.length; i++)
> {
> var obj:Object = Object(answer.dataProvider[i])
> if (obj["CodeValue"] == data.Answer)
> {
> answer.selectedIndex = i;
> break;
> }
> }
> }
> }
> }
>
> Thanks
>
--
Lee Burrows
ActionScripter