Add verticalScrollPosition to get the DP index

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Kevin
Sent: Thursday, February 07, 2008 2:58 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Display Custom ItemRenderer based on previous
value in List

 

Maybe I am just being dense, but I can't figure out how rowIndex helps
me since it is relative to the display on the screen and what i really
need is to know the index of the current item relative to it's
position in the data provider.

For example, if I have 3 rows displayed (but 20 items in the
ArrayCollection) and I get a rowIndex of 2, all that tells me is that
this item is in the third row on the screen. However, that doesn't
mean that it is the third item in the dataProvider so this,

_listData.owner.dataProvider.getItemAt(listData.rowIndex - 1) would
not necessarily lead me to the previous item.

Of course, I could scan through the dataProvider each time to try to
get the index of the current data item, but that seems extremely
inefficient.

BTW, I also noticed that the docs refer to the first item in the list
as index 1, but in my testing it seemed like this is a zero based
index. Am I misreading the docs or are they wrong?

"rowIndex --- The index of the row of the DataGrid, List, or Tree
control relative to the currently visible rows of the control, where
the first row is at an index of 1. For example, you click on an item
in the control and rowIndex is set to 3. You then scroll the control
to change the row's position in the visible rows of the control, and
then click on the same row as before. The rowIndex now contains a
different value corresponding to the new index of the row in the
currently visible rows."

- Kevin

--- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
, "Eric Cancil" <[EMAIL PROTECTED]> wrote:
>
> listData.rowIndex = indispensable
> 
> On Feb 6, 2008 7:16 PM, Alex Harui <[EMAIL PROTECTED]> wrote:
> 
> > If you assume Arrays, and you can efficiently find the index,
then you
> > can use getItemAt to get the previous item. listData.rowIndex
might be
> > useful
> >
> >
> > ------------------------------
> >
> > *From:* flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> 
[mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
] *On
> > Behalf Of *Kevin
> > *Sent:* Wednesday, February 06, 2008 1:24 PM
> > *To:* flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> 
> > *Subject:* [flexcoders] Display Custom ItemRenderer based on
previous
> > value in List
> >
> >
> >
> > I am trying to solve a certain design problem and am not sure how to
> > approach this.
> >
> > I have a List control which displays data using a custom
ItemRenderer.
> > I currently listen for a dataChange event and set different
> > properties of the ItemRenderer based on the data that is being set.
> > That all works fine. (although it could use some refactoring for
> > performance).
> >
> > However, I now want to set some additional properties based on how
> > this data compares to the data of the previous item in the list's
> > dataProvider.
> >
> > I am struggling to find the best way to do this. I can get access to
> > the DataProvider though this.owner.dataProvider, but then I would
need
> > to set up a new cursor, find the current item in the list and then
> > movePrevious() to compare to the previous item. Of course this would
> > have to happen each time they renderer was created for a new item in
> > the list.
> >
> > Can anyone think of another more efficient way to achieve this?
> >
> > Along the same lines, it would also be nice to create separators in
> > List controls, but I haven't figured a way to do this either. For
> > example, if you are displaying a list of 20 scheduled events, it
would
> > be nice to be able to create separator for each different day that
the
> > events happen on. I am guessing I may have to look into extending
the
> > List component for this.
> >
> > - Kevin
> >
> > 
> >
>

 

Reply via email to