Actionscript 3 检查Spark数据网格单元';内容以编程方式?
我第一次使用Spark DataGrid,发现它通常非常有用。现在我已经画好了,我想对我的网格的内容做些什么,我有点困惑于如何继续 我想创建一个函数,它运行在DataGrid中某列的每个单元格中,根据预定义值数组检查每个值;如果找到匹配项,则应通过改变颜色,突出显示冲突单元格 我知道,通过使用Actionscript 3 检查Spark数据网格单元';内容以编程方式?,actionscript-3,flash,apache-flex,flex4,flex-spark,Actionscript 3,Flash,Apache Flex,Flex4,Flex Spark,我第一次使用Spark DataGrid,发现它通常非常有用。现在我已经画好了,我想对我的网格的内容做些什么,我有点困惑于如何继续 我想创建一个函数,它运行在DataGrid中某列的每个单元格中,根据预定义值数组检查每个值;如果找到匹配项,则应通过改变颜色,突出显示冲突单元格 我知道,通过使用getItemRenderRat()函数并传递列和行索引,可以访问特定单元格的项目呈现器。但我看不出如何循环遍历每列中的值 我很可能在这件事上做错了,在这种情况下,请随意把我推上正确的道路。同样地,如果有可
getItemRenderRat()
函数并传递列和行索引,可以访问特定单元格的项目呈现器。但我看不出如何循环遍历每列中的值
我很可能在这件事上做错了,在这种情况下,请随意把我推上正确的道路。同样地,如果有可能做到我想做的事情,我很想知道如何做到
谢谢 实际上,您应该创建自己的
,并将其用作dataGrid的itemRenderer
这样,您就可以根据
的数据属性更改单元格的颜色
下面是一个示例,说明了如何做到这一点:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx" >
<fx:Script>
<![CDATA[
private function isValid(value:uint):Boolean
{
//whatever;
return true;
}
]]>
</fx:Script>
<s:BorderContainer width="100%" height="100%">
<s:borderStroke>
<s:SolidColorStroke color="{isValid(data)?#00FF00:#FF0000}" />
</s:borderStroke>
<s:UITextField label="{data}" />
</s:BorderContainer>
</s:GridItemRenderer>
使用上述示例,还可以在每次更改数据时覆盖“设置数据”以更改颜色,而不仅仅是在网格创建时
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx" >
<fx:Script>
<![CDATA[
import mx.controls.ColorPicker;
import mx.events.FlexEvent;
import mx.utils.ColorUtil;
override public function set data(value:Object):void{
super.data = value;
if(data.different == 1){
solidColor.color = 255;
}
}
]]>
</fx:Script>
<s:BorderContainer width="100%" height="100%">
<s:borderStroke>
<s:SolidColorStroke id="solidColor" />
</s:borderStroke>
<s:UITextFieldGridItemRenderer label="{data.name}" />
</s:BorderContainer>
</s:GridItemRenderer>
接下来的步骤很简单,从datagrid克隆您的dataProvider,然后比较两者,如果项目发生更改,只需将“1”设置为,例如,上面示例中的标志“不同”,然后itemRenderer将调用自身并自动更改de color非常感谢,这使我走上了正确的道路:)我研究了在Flash Builder中使用自动组件创建来创建GridItemRenderer,并设法做了一些类似于您建议的事情。非常感谢,非常感谢!非常感谢,这也有帮助。很高兴能从另一个角度来理解我是如何做到这一点的。