Fair enough, thanks for the feedback :)
On 24 Nov 2008, at 15:49, Alex Harui wrote:
The code you posted just sets visible=true/false which would likely
set the entire renderer to visible/invisible and not some checkbox
inside. If the code you showed is for a subclassed checkbox inside
the renderer, then I’d make sure the .data is passed from the
renderer to the subclassed checkbox.
In cases like these, I usually extend DataGrid and add a function
that dumps out the state of the renderers and their data items.
Scroll until it goes bad, hit the button, call the function in the
DG and see what it thinks is going on.
-Alex
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On Behalf Of Simon Bailey
Sent: Sunday, November 23, 2008 11:44 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] DataGrid itemRenderer Woes
Just a checkbox inside of it in answer to your first question.
The reason I am using a column to ascertain visibility of the check
box is due to using a vo to populate the header renderer and I need
to make a comparison between the grid renderer current item and it
corresponding column header vo.
Cheers,
Si
On 24 Nov 2008, at 06:33, Alex Harui wrote:
Are you changing the visibility of the entire renderer or just a
checkbox inside it? Renderers on the recycle list get visible=false
and set back to true when used again. If you completely hide a
renderer, I’m not sure what would happen.
Other than that, I would find a way to introspect the renderers and
see if they did compute visible correctly for their data. It seems
odd that your lookup of data.val is based on a column.
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On Behalf Of Simon Bailey
Sent: Sunday, November 23, 2008 11:24 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] DataGrid itemRenderer Woes
Ok I have stopped all the errors and essentially integrated your
(Alex's) logic into my application after some serious hair pulling.
The responsibility lies now with the method below for showing or
hiding the check box:
override protected function commitProperties():void
{
super.commitProperties();
var row:int = listData.rowIndex+1;
visible = false;
for( var i:int = 0; i < data.ff.length; i++ )
{
if( data.val[listData.columnIndex-1] !=
undefined && data.val[listData.columnIndex-1].option[i] == row )
{
visible = true;
}
}
if (owner is ListBase)
selected =
ListBase(owner).isItemSelected(data);
}
And dammit if its still doing exactly the same as before?!?
On 23 Nov 2008, at 04:48, Alex Harui wrote:
Read the item renderers section on my blog (blogs.adobe.com/
aharui). Start with the oldest posting.
From: < /span>flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com
] On Behalf Of Simon Bailey
Sent: Saturday, November 22, 2008 2:37 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] DataGrid itemRenderer Woes
Hi,
I have seen through google that this has been an issue but
implementing various solutions still l! eaves my existing problem.
Essentially I have a DataGrid with a custom itemRenderer displaying
CheckBoxes.
Within the renderer I am running a comparison on a value within the
renderers data i.e. data.my_val and the current grid row and column
values.
Depending on whether the data value equals a specific row I show or
hide the check box.
I achieve this by running the comparison logic with the overridden
updateDisplayList method below which works fine until scrolled.
override protected function updateDisplayList( unscaledWidth:Number,
unscaledHeight:Number ):void
{
super.updateDisplayList( unscaledWidth, unscaledHeight );
var row:int = listData.rowIndex+1;
for( var! i:int = 0; i < data.ff.length; i++ )
{
if( data.val[listData.columnIndex-1] != undefined &&
data.val[listData.columnIndex-1].option[i] == row )
{
btn.visible = true;
}
}
}
The issue is on scroll all of the check boxes are displayed/hidden
incorrectly and the whole grid messes right up!
Any ideas pls would be appreciated.
Si