Did you solve this yet?
HeaderRenderers are a bit trickier. Their .data is a DataGridColumn,
and existing controls like CheckBox are set up to be itemRenderers, but
not headerRenderers.
However, I got one working. The key thing was to block the sort event.
Another note is that the headerRenderer may get killed off and
re-created so you may need to set its selected property on
initialization.
I block the sort event like this:
// constructor
DataGrid(listData.owner).addEventListener(DataGridEvent.HEADER_RELEASE,
sortEventHandler);
private function sortEventHandler(event:DataGridEvent):void
{
if (event.itemRenderer == this)
event.preventDefault();
}
________________________________
From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Douglas Knudsen
Sent: Saturday, March 24, 2007 12:14 PM
To: [email protected]
Subject: Re: [flexcomponents] Re: datagrid header with checkbox
when creating a custom header renderer, what is in the data property?
Can things be added? how?
I tried using data.headerText but got nothing.
Ben, thanks for your notes for sure. Creating a itemRender for a DG is
not so painful really. Creating the headerRenderer is where things
don't seem the same approach.
DK
On 23 Mar 2007 20:54:08 -0700, ben.clinkinbeard
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote:
Hi Alex,
Re-reading it now, I see that my sentence about the data setter
isn't
very clear. I suppose its not a case of 'must' or 'always', but
any
time I've created or seen renderers that use a control of some
sort to
represent a piece of data, overriding the data setter is
necessary to
ensure consistent results when scrolling. I was thinking mostly
of
CheckBox renderers in DataGrids since thats what I've
encountered most
often, but I would venture to guess that it holds true for other
controls like ComboBox, Label, etc in things like Lists as well
as
DataGrids.
For whatever reason, the list-based controls don't seem to be
able to
re-apply proper values/states on the itemRenderers when the
scrolling
initiates the recycling of displayed items. That is, since it
reuses
the same graphical assets and simply swaps the data for each
item when
the list is scrolled, binding the control to a value isn't
enough to
keep checked items checked, and unchecked items unchecked.
If I am just dense and have missed an easier way to do things I
would
certainly appreciate any advice you can provide. Also, if need
be I
can try to throw together a quick example to demonstrate the
erratic
behavior I described.
Thanks,
Ben
--- In [email protected]
<mailto:flexcomponents%40yahoogroups.com> , "Alex Harui" <[EMAIL PROTECTED]>
wrote:
>
> Ben, I'm not aware of a rule that you must override the .data
setter.
> Can you explain further?
>
>
>
> -Alex
>
>
>
> ________________________________
>
> From: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
> [mailto:[email protected]
<mailto:flexcomponents%40yahoogroups.com> ] On Behalf Of
ben.clinkinbeard
> Sent: Friday, March 23, 2007 5:48 PM
> To: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
> Subject: [flexcomponents] Re: datagrid header with checkbox
>
>
>
> Hi Douglas,
>
> If you look in the docs, you'll see that itemRenderers (and
> itemEditors) are the primary use cases for ClassFactory. In
fact, when
> you say something like <mx:List id="myList"
> itemRenderer="ProductRenderer">, the compiler actually creates
a
> ClassFactory instance for you behind the scenes. Explicitly
creating
> the ClassFactory instance simply allows you to use the
properties
> property, which is the key to making a reusable renderer.
Further
> evidence of the correlation is that the itemRenderer and
itemEditor
> properties are of type IFactory, which is what ClassFactory
implements.
>
> I don't want you to think I'm being defensive, its just that
> itemRenderers seem to be a topic that comes up repeatedly as a
pain
> point for developers. I think if people had a better
understanding of
> how they worked (especially the rule that you MUST override
the data
> setter method), people could avoid a lot of headaches.
>
> The post I wrote prior to the one Darron referenced actually
shows how
> to create a renderer in what I guess is the more traditional
method
> (itemRenderer="MyRendererClass"), so that may be of help to
you.
> However, the reason I initially began investigating
ClassFactory was
> because of problems I was having getting a CheckBox to
function as a
> headerRenderer. For reasons still unknown to me,
headerRenderers seem
> to fire events extremely frequently, which caused difficulty
getting
> it to respond to user interaction in a predictable way.
>
> Let me know if you have any other questions or concerns about
> renderers (and/or my approach to them) and I will do my best
to help.
>
> Thanks,
> Ben
>
> --- In [email protected]
<mailto:flexcomponents%40yahoogroups.com>
> <mailto:flexcomponents%40yahoogroup s.com <http://s.com> > ,
"Douglas Knudsen"
> <douglasknudsen@> wrote:
> >
> > thanks, been reading that. Seems like this approach is way
off the
> > direction normally taken for renderers though, eh? Not to
knock Ben
> mind
> > you. Can add checkboxes to a datagrid cell with out that,
correct?
> So why
> > not headers?
> >
> > oh...answering my other question...headers are rendered by
> > DataGridItemRenderer by default according to the docs.
> >
> > DK
> >
> > On 23 Mar 2007 13:31:04 -0700, Darron J. Schall <darron@>
> > wrote:
> > >
> > > Check out
> > >
> > >
>
http://www.returnundefined.com/2006/11/creating-truly-reusable-renderers
<http://www.returnundefined.com/2006/11/creating-truly-reusable-renderer
s>
> -with-classfactory/
>
<http://www.returnundefined.com/2006/11/creating-truly-reusable-renderer
<http://www.returnundefined.com/2006/11/creating-truly-reusable-renderer
>
> s-with-classfactory/>
> > >
> > > -d
> > >
> > >
> > > Douglas Knudsen wrote:
> > > >
> > > > How the heck to get a checkbox in the header of a data
grid, eh?
> Let
> > > > me re-phrase that some...a workable checkbox. I can
create a
> custom
> > > > renderer in AS to put one there, but can't click it at
all. Anyone
> > > > have a example or a nudge?
> > > >
> > > > --
> > > > Douglas Knudsen
> > > > http://www.cubicleman.com <http://www.cubicleman.com> <
http://www.cubicleman.com <http://www.cubicleman.com> >
> <http://www.cubicleman.com <http://www.cubicleman.com> <
http://www.cubicleman.com <http://www.cubicleman.com> > >
> > > > this is my signature, like it?
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > Douglas Knudsen
> > http://www.cubicleman.com <http://www.cubicleman.com> <
http://www.cubicleman.com <http://www.cubicleman.com> >
> > this is my signature, like it?
> >
>
--
Douglas Knudsen
http://www.cubicleman.com <http://www.cubicleman.com>
this is my signature, like it?