Oracle APEX - 显示来自动态列表的卡片图像

Oracle APEX - Display card image from the dynamic list

我在我的页面上以卡片格式显示一个列表,但没有显示图像 - 只有一个灰色圆圈。这是我对动态列表的查询:

SELECT null as level_value, 
   TITLE as label, 
   null astarget, 
   null as is_current, 
   IMG_PATH as image, 
   'width="40" height="40"' image_attribute, 
   TITLE as image_alt_attribute,
   DECRIPTION as attribute1
FROM  TABLE1
ORDER BY TITLE

我也试过:

SELECT null as level_value, 
   TITLE as label, 
   null astarget, 
   null as is_current, 
   '<img src="' || IMG_PATH || '"/>' as image, 
   'width="40" height="40"' image_attribute, 
   TITLE as image_alt_attribute,
   DECRIPTION as attribute1
FROM  TABLE1
ORDER BY TITLE

我在检查页面时注意到 APEX 将我的图像标签添加到 span:

的 class
<span class="t-Icon <img src='my image path' />">

而不只是将图片添加到卡片

这些列表的外观和结构是预定义的。我认为此列表模板将图像理解为 css class。 要工作,您需要提供有效的 css class

icons/class 列表:https://apex.oracle.com/pls/apex/f?p=42:icons

编辑。

也许您可以复制您正尝试使用的列表模板,然后进行必要的修改以获得图像的 url。 为此,您需要转到共享组件 >> 模板 >> 找到您的模板列表 >> 单击要复制的报告的最后一列 >> 编辑 html 以接收 url一个图像。在此页面上,您会发现几个替换字符串。

接收"image"的是#ICON_CSS_CLASSES#,但它默认用于"span" class,它的变化是创建一个 "img" 并将该替换字符串放在 "img" 的 "src" 中,类似于

<img src="#ICON_CSS_CLASSES#">

我找到了解决办法。其实两种解法。

1) 修改动态列表以利用 CARD_INITIALS 和属性

SELECT null as level_value, 
  TITLE as label, 
  null astarget, 
  null as is_current, 
  IMG_PATH as CARD_INITIALS, 
  'width="40" height="40"' image_attribute, 
  TITLE as image_alt_attribute,
  DECRIPTION as attribute1,
  '' as attribute2,
  '<img src="' || IMG_PATH || '"/>' as attribute3
FROM  TABLE1
ORDER BY TITLE

必须同时设置 CARD_INITIALSattributes3 - 其他组合无法正常工作。

然后,在列表区域属性中,将列表模板设置为Cards,将样式设置为featured,将图标设置为-Display Initials

2) 经典报表 - 将其属性设置为卡片模板并使用 CARD_INITIALS、CARD_TITLE 和 CARD_TEXT 作为源查询中的别名。两种方法都能产生预期的结果