开发者

Auto select the first index in a sparks List control in flex4

I have a spark List control. It has a dataProvider that shows reply from twitter search.

I have created a function for change handler like this:

protected function list_changeHandler(ev开发者_开发技巧ent:IndexChangeEvent):void
{
    ta.text = coverflow.selectedItem.title;
}

So, whenever I select each of the items in the List, I will see the message(ta.text) but now, instead of me manually clicking the first time, I want it to automatically click/select the first item and see the first message(ta.text)

How can I achieve this?


You should set the requireSelection property to true on the list control

<s:List id="myList" dataProvider="{myDataProvider}" requireSelection="true"/>


How about to try this solution? :)

Your list control also has event name creationComplete (similar to change event). Try to select your first item with this:

protected function list1_creationCompleteHandler(event:FlexEvent):void
{
    if(event.target.dataProvider != null )
    {
        (event.target as List).selectedIndex = 0;
    }
}

You may not need to convert event.target to List. but it may help you access code completion while you are coding.


Actually, in thinking about this, you probably need to subclass the list and override the dataProvider setter.

override public function set dataProvider(data:*) : void {
  super._dataProvider = data;
  // This will be an ArrayCollection or XMLListCollection, so will have a length
  if (data && data.length > 0) {
    this.selectedIndex = 0;
    invalidateDisplayList();
  }
}


Set the dataProvider of the list, set the selected item, and then either call your handler function directly with a null parameter, or make the list dispatch an indexChanged event so that your handler function gets executed.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜