【发布时间】:2011-03-27 04:53:19
【问题描述】:
选择数据网格中所有项目的最佳方式是什么。
我正在考虑做一个 for 循环,然后选择每个项目,但有没有更好的方法来实现这一点?
【问题讨论】:
标签: apache-flex datagrid
选择数据网格中所有项目的最佳方式是什么。
我正在考虑做一个 for 循环,然后选择每个项目,但有没有更好的方法来实现这一点?
【问题讨论】:
标签: apache-flex datagrid
您使用的是什么类型的 dataProvider?
如果你有一个数组,你可以这样做:
dataGrid.selectedItems = dataGrid.dataProvider;
如果你有一个 ArrayCollection,你可以这样做:
dataGrid.selectedItems = dataGrid.dataProvider.source;
对于 XML,您可能需要循环。
有关 selectedItems 属性的更多信息:
http://livedocs.adobe.com/flex/3/langref/mx/controls/listClasses/ListBase.html#selectedItems
【讨论】:
selectedItems 表示数据的子集 dataProvider。设置它听起来容易出错。更改selectedIndices 更加安全和优雅。
selectedItems,您可以向可能(完全)不同于dataProvider 的组件发送数据。我很确定当您设置 selectedItems 时,组件必须检查这两个集合之间的一致性 - 但它的工作原理是 ActionScript 非常方便。
您好,我也用 mx.dataGrid 尝试了所有这些方法,但没有用, 这里我喜欢一个好方法
var indexArr:Array = [];
for(var i:uint= 0; i<dataGrid.dataProvider.length;i++ )
{
indexArr.push(i);
}
dataGrid.selectedIndices= indexArr;
这对我有用
【讨论】:
我还将添加这个问题的补充。 要取消选择数据网格的所有项目,答案不是
dataGrid.selectedItems = null;
但我们会是
dataGrid.selectedItems = new Array;
第一个会抛出 NullPointerExceptions。
【讨论】: