我使用嵌入在数据网格列中的项呈示器将图像添加到datagrid的单元格。只有当来自单元行的数据满足某些要求时,我才需要将图像添加到单元格。以下是我想要实现的目标:
<mx:AdvancedDataGridColumn dataField="delete" headerText="Delete" >
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
public function showImage():void{
if(rowData.column1 == "image1"){
image1.visible = true;
}
else{
image1.visible = false;
}
]]>
</mx:Script>
<mx:Image source="{image1}" visible="{showImage}" id="deleteFile" click="" scaleX="0.1" scaleY="0.1" horizontalCenter="true" horizontalAlign="center"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
答案 0 :(得分:1)
将以下代码添加到<mx:Script>
override public function set data(value:Object):void
{
super.data = value;
showImage();
}
set data
是grid
调用设置的函数,这是覆盖将条件属性应用于ItemRenderer的最佳函数
答案 1 :(得分:1)
检查出来
<mx:AdvancedDataGridColumn dataField="delete" headerText="Delete" >
<mx:itemRenderer>
<mx:Component>
<mx:VBox horizontalAlign="center" verticalAlign="middle">
<mx:Image source="{image1}" visible="{data.image1 == 'image1'}" id="deleteFile" click="" scaleX="0.1" scaleY="0.1" horizontalCenter="true" horizontalAlign="center"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
但我鼓励您构建一个单独的类,并将其设置为Column的itemRenderer。 获取有关类似stackoverflow问题的更多详细信息:
How can I know when a Button in a Flex DataGrid itemRenderer is clicked?
答案 2 :(得分:0)
关于覆盖set data
更新 CityAngle刚刚添加了与我相同的答案,但我会将此留给后人: - )
override public function set data(value:Object):void
{
super.data = value;
if(value.column1 == "image1"){
image1.visible = true;
}
else{
image1.visible = false;
}
}
data
将是您在DataGrids dataProvider
中输入的对象。