【问题标题】:Flex List selected entire list by defaultFlex List 默认选中整个列表
【发布时间】:2011-08-31 15:18:35
【问题描述】:

我目前正在处理一个 Flex 项目,我很难让列表的内容默认全部选中。想知道如何做到这一点。感谢任何帮助。

<mx:List id="list" dataProvider="{dp}" allowMultipleSelection="true"/>

我只是想将列表全部选中。

【问题讨论】:

  • 你使用什么列表?火花还是 MX?你能发布你的代码来了解你的问题在哪里吗?
  • @Constantiner 我真的不知道从哪里开始选择它们,所以我真的没有太多代码要显示。
  • 您的数据提供者是什么? Array, ArrayCollection?

标签: apache-flex actionscript-3


【解决方案1】:

尝试使用类似以下的内容:

<mx:List id="list" dataProvider="{dp}" allowMultipleSelection="true" 
    creationComplete="event.currentTarget.selectedItems = event.currentTarget.dataProvider.source"/>

【讨论】:

  • 您能否将creationComplete 处理程序提取到单独的ActionScript 方法中并跟踪event.currentTarget.dataProvider.source 的值?
  • 好的,我查看了 creationComplete 中的 dataProvider,当时它为空,但我检查了 init,它有它的值。我用init尝试了这条线,但没有用。不知道为什么...
  • 什么是init?重点如下。在您的dp 初始化并充满数据的那一刻,您需要将listselectedItems 设置为dp.source
【解决方案2】:

我最终尝试了许多不同的变体以使列表全部被选中。这是最终工作的那个。

var arr:Array = new Array();

for (var i:Number = 0; i &lt; (list.dataProvider as ArrayCollection).length; i++) {

arr[i] = i;

}

list.selectedIndices = arr;

【讨论】: