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
分享到:
相关推荐
EasyUI Datagrid 中文排序的问题 解决了WEB端和后台(Oracle、MySQL)中文排序问题
DataGrid中的排序列怎么设
针对 DataGrid 控件,对数据进行分组、排序和筛选....
主要介绍了jQuery Easyui datagrid/treegrid 清空数据的相关资料
juqery easyui datagrid的排序,当前页面排序。包含数字排序,中文排序,日期排序。
flex DataGrid中文字符排序类 用法见 http://blog.sina.com.cn/s/blog_5fc933730100iign.html
修改了原来的mydatagridview 中去掉设置树深度属性, 自动获得树深度;并修改了修改树节点时报错的问题。
对FLEX dataGrid 中文排序的代码以及字符集等
利用DataGrid显示某目录下的所有文件 | 对DataGrid进行排序
wpf datagrid排序列表头文字右边的升降箭头Demo,下载下来用VS2019编辑即可执行!!
easyui datagrid排序图标 默认情况是没有图标的,无法区分哪些列可以排序
Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的 DataGrid组件都要\"高级\"许多。其\"高级\"的地方就在于不需要再进行任何其他设置...
Flex中如何创建自定义排序DataGrid控件的例子
jQuery easyui dataGrid 动态改变排序字段名,一般情况下,在使用的时候,我们会点击相应字段进行排序,这里以JAVA为例,后端的实体类字段有可能和数据库的字段不一致; 如:实体类中的属性为userName,前台filed=...
对DataGrid的基础操作总结(1.删除表格选定记录.....)
使用jquery的datagrid经常遇到的问题
使用SSM框架+EasyUI DataGrid数据表格实现了基本的增删改查,以及对数据分页,排序功能的实现。是一个对于后台管理的很好的例子,因为一般企业后台管理都是使用EasyUI等框架快速搭建,而且DataGrid是EasyUI最重要的...
jui_datagrid 是一个 Ajax 的 jQuery 表格插件,可用于操作表格数据,通过简单和强大的 API 进行主题定制、本地化支持等。...在线演示:http://www.pontikis.net/labs/jui_datagrid/demo/ 标签:juidatagrid