So the first problem I see is that at startup, none of the Combo's are
disabled. That is because Combo disabling is handled in
commitProperties and you are changing the enabled after
super.commitProperties. That is fixed by moving super.commitProperties:
override protected function commitProperties():void {
if (_oItem) {
var bDisabled:Boolean = !_oItem.disabledFlag
this.enabled = bDisabled;
trace("commitProperties - value:" + _oItem.value
+ ", DISABLED=" + (this.enabled == false));
}
super.commitProperties();
}//commitProperties
The next problem is that clicking a checkbox doesn't update. Editing is
session based and won't update the DP on click, but later when focus
leaves the editor. Normally you put in a click/change event on the
checkbox renderer and call itemUpdated on that event.
________________________________
From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Tracy Spratt
Sent: Thursday, November 29, 2007 12:08 PM
To: [email protected]
Subject: RE: [flexcomponents] Re: How to call invalidateList() from
within a renderer
The CBO set data and commitProperties overrides are getting called
correctly by the framework whenever I click the checkbox in the other
column, and the CBO.enabled property is being set correctly, per the
trace.
If you have time and inclination, take a look at my test case the other
post.
Thanks, Tracy
-----Original Message-----
From: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
[mailto:[email protected]
<mailto:flexcomponents%40yahoogroups.com> ] On Behalf Of
ben.clinkinbeard
Sent: Thursday, November 29, 2007 12:55 PM
To: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
Subject: [flexcomponents] Re: How to call invalidateList() from within a
renderer
> I should not, I think, need to call itemUpdated().
What is supposed to cause your ComboBox to revalidate then? I could
certainly be wrong but its worth a shot.
--- In [email protected]
<mailto:flexcomponents%40yahoogroups.com> , "Tracy Spratt" <[EMAIL PROTECTED]>
wrote:
>
> Yes it is an AC of strongly typed objects, and only certain properties
> are marked [Bindable], not the entire class. I think Alex must be
right,
> I have some other problem. I should not, I think, need to call
> itemUpdated().
>
> A related question, since I am not depending on binding in the
renderer,
> but explicitly accessing the public members, should the bindability of
> those members be significant? Theoretically, I mean, obviously I have
> some problem somewhere.
>
> Tracy
>
>
> -----Original Message-----
> From: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
> [mailto:[email protected]
<mailto:flexcomponents%40yahoogroups.com> ] On Behalf Of
ben.clinkinbeard
> Sent: Thursday, November 29, 2007 9:05 AM
> To: [email protected]
<mailto:flexcomponents%40yahoogroups.com>
> Subject: [flexcomponents] Re: How to call invalidateList() from within
a
> renderer
>
> Hi Tracy,
>
> Are the items in your dataProvider strongly typed objects whose whole
> class is marked [Bindable]? If not, you might try calling
> itemUpdated() on your dataProvider (assuming its an ArrayCollection).
>
> HTH,
> Ben
>
>
>
> --- In [email protected]
<mailto:flexcomponents%40yahoogroups.com> , "Tracy Spratt" <tspratt@>
> wrote:
> >
> > I want my ComboBox itemRenderer to be disabled based on a
> "disabledFlag"
> > property in the dataProviderItem.
> >
> > I have a CheckBox renderer in another column that updates that
> property.
> >
> > The ComboBox renderers display fine on initialize, with the correct
> rows
> > disabled
> >
> > But when I click the checkbox, even though the code in the CBO
> > renderer's set data() and commitProperties runs correctly and sets
the
> > Combobox enabled property correctly, the ComboBox interactivity is
not
> > correct until something redraws the list, like scrolling.
> >
> > I can make it work with an external button that calls
invalidateList()
> > on the DataGrid, but I want to do that from within the renderer. I
> have
> > tried:
> >
> > /** called from commitProperties */
> > private function setEnabled():void
> > {
> > this.enabled = !_oItem.disabledFlag;
> > DataGrid(_dgListData.owner).invalidateList();
> > }//setEnabled
> >
> > But this does not seem to do anything.
> >
> > Where, when and how should I make the invalidateList call from
within
> my
> > renderer?
> >
>
>
>
>
>
> Yahoo! Groups Links
>
Yahoo! Groups Links