Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex—按行对datagrid列进行排序';s标签_Apache Flex_Flash_Actionscript 3_Datagrid_Dataservice - Fatal编程技术网

Apache flex Flex—按行对datagrid列进行排序';s标签

Apache flex Flex—按行对datagrid列进行排序';s标签,apache-flex,flash,actionscript-3,datagrid,dataservice,Apache Flex,Flash,Actionscript 3,Datagrid,Dataservice,我正在创建一个表来显示来自MySQL数据库的信息,我在各地使用foreignkey来交叉引用数据 基本上,我有一个datagrid,它有一个名为“system”的列。该系统是一个int,表示另一个表中对象的id。我使用了lableFunction来交叉引用这两个函数并重命名列。但现在排序不起作用,我知道您必须创建一个自定义排序函数。我已经尝试再次交叉引用这两个表,但对1200行进行排序需要约30秒。现在我不知道下一步该怎么做 有没有办法访问排序函数中的columns字段标签? 公共函数顺序(a:

我正在创建一个表来显示来自MySQL数据库的信息,我在各地使用foreignkey来交叉引用数据

基本上,我有一个datagrid,它有一个名为“system”的列。该系统是一个int,表示另一个表中对象的id。我使用了lableFunction来交叉引用这两个函数并重命名列。但现在排序不起作用,我知道您必须创建一个自定义排序函数。我已经尝试再次交叉引用这两个表,但对1200行进行排序需要约30秒。现在我不知道下一步该怎么做

有没有办法访问排序函数中的columns字段标签?
公共函数顺序(a:Object,b:Object):int
{
var v1:String=a.sys;
var v2:String=b.sys;
如果(v1v2){
微量元素(1);
返回1;
}否则{
迹(0);
返回0;
}

}

数据网格和其他基于列表的类的工作方式是使用ItemRenders。仅为屏幕上显示的数据创建渲染器。在大多数情况下,数据提供者中的数据比屏幕上显示的数据多得多

试图根据dataGrid显示的内容对数据进行排序很可能不会得到想要的结果

但是,没有理由不能在sortFunction中对数据对象调用相同的label函数

一种方法是使用dataGrid的itemToLabel函数:

var v1:String = dataGrid.itemToLabel(a);
var v2:String = dataGrid.itemToLabel(b);
第二种方法是显式调用labelFunction:

var v1:String = labelFunction(a);
var v2:String = = labelFunction(b);

根据我的经验,我发现排序非常快,但是您的记录集比我通常一次加载到内存中的记录集稍大

数据网格和其他基于列表的类的工作方式是使用ItemRenders。仅为屏幕上显示的数据创建渲染器。在大多数情况下,数据提供者中的数据比屏幕上显示的数据多得多

试图根据dataGrid显示的内容对数据进行排序很可能不会得到想要的结果

但是,没有理由不能在sortFunction中对数据对象调用相同的label函数

一种方法是使用dataGrid的itemToLabel函数:

var v1:String = dataGrid.itemToLabel(a);
var v2:String = dataGrid.itemToLabel(b);
第二种方法是显式调用labelFunction:

var v1:String = labelFunction(a);
var v2:String = = labelFunction(b);

根据我的经验,我发现排序非常快,但是您的记录集比我通常一次加载到内存中的记录集稍大

处理此问题的一种方法是遍历接收到的对象,并根据交叉引用id将标签作为属性添加到每个对象上。然后可以指定要在数据网格列中显示的标签属性,而不是使用标签函数。这样,您就可以按预期进行排序,而不必创建自己的排序函数

处理此问题的一种方法是遍历接收到的对象,并根据交叉引用id将标签作为属性添加到每个对象上。然后可以指定要在数据网格列中显示的标签属性,而不是使用标签函数。这样,您就可以按预期进行排序,而不必创建自己的排序函数

我想这就是我要做的。我试图将所有数据分开,但我认为这不会发生。我来试试。谢谢你的洞察力,这样看来一切都很顺利。基本上,我将模型中的所有表分开(使用robotlegs),每当更新表时,它都会调用一个方法将交叉引用字段添加到表行中。我没有注意到太多(如果有的话)额外的滞后。再次感谢你,我想这就是我要做的。我试图将所有数据分开,但我认为这不会发生。我来试试。谢谢你的洞察力,这样看来一切都很顺利。基本上,我将模型中的所有表分开(使用robotlegs),每当更新表时,它都会调用一个方法将交叉引用字段添加到表行中。我没有注意到太多(如果有的话)额外的滞后。再次感谢你。