1,Find criteria must contain at least one sort field value.
Error: Find criteria must contain at least one sort field value.
at mx.collections::Sort/findItem()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\Sort.as:491]
at mx.collections::ListCollectionView/getItemIndex()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:513]
at ListCollectionViewCursor/collectionEventHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:2154]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.collections::ListCollectionView/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:833]
at mx.collections::ListCollectionView/internalRefresh()[C:\autobuild\3.2.0
网上有不少人碰到,但似乎不是同个问题。
问题重现:先在DataGrid点击某列,进行排序。然后再新增一行新的记录。记录属性值为空。
问题解决:
A,实际解决方法
通过排查,发现新增加的记录的对象定义中,如果有一个以上的字段类型定义为(*)的,就会抛出此项错误。
如 var name:*;//出错
改为 var name:Object;//正常
B,查看源码(Sort.as 491行)
if (compareFunction == null) //436Line
{///中间省略N行
if (fieldsForCompare.length == 0)
{
message = resourceManager.getString( //491Line
"collections", "findRestriction");
throw new SortError(message);
}
}
else//505Line
{
compareForFind = compareFunction;
}
这里从436到505行之间的所有判断,都源于compareFunction为空的处理,如果为该ArrayCollection.sort属性设置排序函数,即不会进入这个判断语句中。[只是判断,未实践]
2,排序顺序不正常(空值排中间)
为DataGridColumn设置默认的排序函数。此处为继承了该类。
public function sortCompareFunctionHandler(rowa:Object,rowb:Object):int{
var a:String = itemToLabel(rowa);
var b:String = itemToLabel(rowb);
if(a == b) return 0;
if(a == null || a == "") return -1;
if(b == null || b == "") return 1;
return ObjectUtil.stringCompare(a,b);
}
- 大小: 17.1 KB
分享到:
相关推荐
为了解决这个问题,我们需要自定义排序函数,这通常涉及字符集的处理和字符串比较的算法。 `SortUtil.txt`文件可能包含了自定义的排序工具类,这个类可能会包含以下关键方法: 1. `compareChineseStrings`:这是一...
在Flex开发中,DataGrid控件是用于展示数据集的常用组件,它可以显示表格形式的数据并支持用户交互,如排序、选择和编辑。然而,有时我们可能需要对DataGrid的默认排序功能进行自定义,以满足特定的业务需求。本教程...
Flex DataGrid是Adobe Flex框架中用于显示和操作数据集的一个组件,它允许用户对数据进行排序,以便更好地理解和分析数据。本篇文章将深入探讨如何在Flex DataGrid中实现按数字顺序和字母顺序的排序功能。 首先,...
然而,尽管ArrayCollection通常被用作数据绑定的主要工具,但在特定情况下,可能会遇到“ArrayCollection不完全绑定”的问题。这个问题通常表现为试图绑定到ArrayCollection的部分属性或方法时,绑定不生效或者结果...
3. **ArrayTest.mxml**:这个文件可能包含一个示例,展示了如何使用ArrayCollection作为数据源驱动DataGrid。ArrayCollection是ActionScript中轻量级的数据容器,能方便地与Flex组件进行数据绑定。 4. **tree.mxml*...
源码可能涵盖了自定义DataGrid功能、优化性能或解决特定问题的代码示例。工具可能是指用于辅助开发、调试或增强DataGrid功能的第三方库或插件。 虽然没有具体的压缩文件内容可供参考,但“Flex3控件使用.doc”这个...
AdvancedDataGrid则是DataGrid的增强版,提供了更丰富的数据显示和排序、分组等功能,适合处理大量复杂数据。 全选功能通常涉及到两个主要部分:主CheckBox控件和DataGrid/AdvancedDataGrid中的数据项。当主...
1. DataGrid组件简介:DataGrid是Flex中一个功能强大的表格控件,可以显示多列数据,并支持排序、选择、分页等操作。它适用于展示结构化的数据集合,如数据库查询结果或者XML数据。 2. 使用步骤: - 创建DataGrid...
在Flex中,DataGrid通常与数据提供者(如 ArrayCollection 或 XML)关联,用于动态展示数据。 二、高级用法详解 1. **自定义列** DataGrid允许我们自定义列的显示样式和行为。例如,可以创建自定义的Column类,...
在Flex开发中,DataGrid控件是一个非常重要的组件,它被广泛用于展示和操作结构化的数据,例如数据库表格或者XML列表。本例子旨在帮助开发者更好地理解和应用DataGrid,通过实例来学习其基本功能和特性。 DataGrid...
在Flex开发中,DataGrid控件是用于展示数据表格的强大工具,它允许用户对大量数据进行排序、筛选和编辑。本教程将深入讲解如何有效利用DataGrid控件,并结合HTTPService进行参数传递,以实现与服务器的数据交互。...
10. **自定义行为**:通过覆盖DataGrid的默认行为,可以实现更复杂的交互,比如自定义排序、分页等。 以上就是Flash中DataGrid的基本用法和外部类的引入。实践中,开发者可以根据项目需求进行更深入的定制和扩展,...
DataGrid是一种用于显示结构化数据的组件,它可以显示多列数据,并支持排序、选择和编辑等功能。在导入Excel或CSV数据时,我们通常会使用Flash Player的FileReference类来处理文件选择,然后通过AS3解析文件内容,将...
4. **数据排序和过滤**:如果需要在前台进行数据排序或过滤,要确保这些操作不会影响到整个数据集,只对当前页的数据进行操作。 5. **状态保存**:如果应用有多个视图或用户离开后再返回,需要保存用户的分页状态,...
它能够以表格形式显示数据,支持排序、筛选、编辑等功能,极大地增强了用户界面的交互性。本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目...
ArrayCollection是基于Array的,但提供了对数据的更高级别的访问,如排序和过滤功能。在某些情况下,我们需要将ArrayCollection转换为XML格式,以便于数据交换或存储。本实例将详细介绍如何实现这一转换。 首先,...
`DataGrid`可以自动调整列宽,并支持排序、选择等功能,提供了一种高效的数据展示方式。 要将XML数据绑定到`DataGrid`,我们需要经过以下几个步骤: 1. **创建XML文件**:XML是一种轻量级的数据交换格式,常用于...
在Flex4.6开发环境中,DataGrid控件是用于展示数据集合的重要组件,它提供了丰富的功能,如排序、分页和自定义列显示。在这个项目中,我们关注的是如何实现DataGrid的行编辑功能,特别是在行中嵌套ComboBox控件以...