Flex 3:如何将图像添加到advancedDataGrid列

时间:2018-12-29 23:13:06

标签: actionscript-3 flex3 mxml advanceddatagrid

我需要修改一个旧的flex 3项目,并且需要创建一个如下所示的advancedDataGrid:

example1

我需要在该列的每一行中添加多个图像。我有一个数组,其中包含有关需要添加的图像的信息。此时,我的网格看起来像这样:

example2

其中字母“ C”,“ W”,“ R”,“ A”,“ F”代表我需要添加的图标。我想我需要做一个渲染,在那里我可以挑选每个字母并将其替换为相应的图像。但是我发现的所有示例均来自Flex 4,因此无法在此处使用。我得到的最好的是:

 <mx:AdvancedDataGrid id="myADG" dataProvider = "{gridData}" width="200" height="500" x="800" y="50" >       

        <mx:columns>

            <mx:AdvancedDataGridColumn id="lineColumn" dataField="line">

                  <mx:itemRenderer>
                    <mx:Component>

                    <mx:Image source='{ iconData.line == 'C' ?
                              'resources/icon2312.png' : 'resources/icon2314.png'}' x="200" y="200" visible="true" />
                    </mx:Component>
                </mx:itemRenderer>

            </mx:AdvancedDataGridColumn>

        </mx:columns>

    </mx:AdvancedDataGrid>

这让我在每一行中插入图片,但是我不知道如何添加多个图片。我应该解析字符串并将每个字母放在单独的列中吗?还是有更简单的方法?

1 个答案:

答案 0 :(得分:0)

如果同时存在几个图标,则可以这样做,添加最大图像数的图像。这里为2,则可以添加更多图像。

df1$status <- 1
df1$start_date <- as.numeric(df1$start_date)
df1$end_date <- as.numeric(df1$end_date)

df3 <- survSplit(Surv(end_date, status) ~., df1,
                 cut=seq(from=as.numeric(as.POSIXct("2018-12-10 00:00:00")), 
                         to=as.numeric(as.POSIXct("2018-12-10 00:00:00")) + 24*60*60, 
                         by=900), 
                 start = "start_int",
                 id="new_id",
                 episode ="episode")

df3$start_int <- as.POSIXct(df3$start_int, origin = "1970-01-01", tz = "Australia/Brisbane")
df3$start_date <- as.POSIXct(df3$start_date, origin = "1970-01-01", tz = "Australia/Brisbane")
df3$end_date <- as.POSIXct(df3$end_date, origin = "1970-01-01", tz = "Australia/Brisbane")

使用includeLayout隐藏或显示图像

我使用了iconData.line1 =='C'来检查是否需要显示一张图像,您可以使用 bit xor来进行检查

     <mx:itemRenderer>
          <mx:HBox>

                <mx:Image source='{ iconData.line1 == 'C' ?
                          'resources/icon2312.png' : 'resources/1.png'}' x="200" y="200" visible={ iconData.line1 == 'C'} includeInLayout={iconData.line1 == 'C'}/>

                <mx:Image source='{ iconData.line2 == 'W' ?
                          'resources/icon2312.png' : 'resources/2.png'}' x="200" y="200" visible="{ iconData.line2 == 'W'}" includeInLayout={iconData.line2 == 'W'}/>
          </mx:HBox>
      </mx:itemRenderer>