Apache flex Flex:datagrid选择所有项目

Apache flex Flex:datagrid选择所有项目,apache-flex,datagrid,Apache Flex,Datagrid,选择datagrid中所有项的最佳方法是什么 我想做一个for循环,然后选择每个项目,但有没有更好的方法来实现这一点?您使用的是哪种类型的数据提供程序 如果您有阵列,则可以执行以下操作: dataGrid.selectedItems = dataGrid.dataProvider; dataGrid.selectedItems = dataGrid.dataProvider.source; 如果您有ArrayCollection,则可以执行以下操作: dataGrid.selectedIte

选择datagrid中所有项的最佳方法是什么


我想做一个for循环,然后选择每个项目,但有没有更好的方法来实现这一点?

您使用的是哪种类型的数据提供程序

如果您有阵列,则可以执行以下操作:

dataGrid.selectedItems = dataGrid.dataProvider;
dataGrid.selectedItems = dataGrid.dataProvider.source;
如果您有ArrayCollection,则可以执行以下操作:

dataGrid.selectedItems = dataGrid.dataProvider;
dataGrid.selectedItems = dataGrid.dataProvider.source;
对于XML,您可能需要循环

有关selectedItems属性的详细信息:


我还要补充这个问题。 要取消选择datagrid的所有项,答案是否定的

dataGrid.selectedItems = null;
但我们会的

dataGrid.selectedItems = new Array;

第一个将抛出NullPointerException

嗨,我也用mx.dataGrid尝试了所有这些,但都不起作用, 在这里我喜欢一个好方法

var indexArr:Array = [];
for(var i:uint= 0; i<dataGrid.dataProvider.length;i++ )
{

    indexArr.push(i);    

} 
dataGrid.selectedIndices= indexArr;
var-indexArr:Array=[];

对于(var i:uint=0;iThanx表示加法@Zenklys@Adnan@Reboog711如果你必须关心数据类型,那么你可能走错了路。
selectedItems
代表数据的子集
dataProvider
。设置它听起来很容易出错。更改
selectedices
更安全、更优雅。@Destroyica了解您的评论。在Flex MX列表中,数据提供程序是一个通用对象;因此对它的任何操作都需要知道其类型。selectedItems属性必须包含数据提供程序的元素。更改SelectedDices需要一个循环(如原始问题中所述),但我认为这会使代码不那么优雅。I不明白使用selectedItems如何使代码比访问selectedItems更安全(或更不安全)。我的观点是,通过操纵索引,组件可以处理数据。通过设置
selectedItems
,您可以将数据发送到可能(完全)安全的组件与
dataProvider
不同。我很确定,当您设置
selectedItems
时,组件必须检查这两个集合之间的一致性-但它作为ActionScript工作非常方便。