Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.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
基于值添加CSS/JQuery条件格式Oracle Apex表单 甲骨文=11G 顶点=4.2.6_Jquery_Css_Oracle_Oracle Apex - Fatal编程技术网

基于值添加CSS/JQuery条件格式Oracle Apex表单 甲骨文=11G 顶点=4.2.6

基于值添加CSS/JQuery条件格式Oracle Apex表单 甲骨文=11G 顶点=4.2.6,jquery,css,oracle,oracle-apex,Jquery,Css,Oracle,Oracle Apex,我在Oracle APex中有一个非常大的自定义矩阵网格。 这将以标题形式显示月份(即1,2,3)的名称、区域和天数 排成350行。每个单元格中都有一个任务类型。因此,每个员工每天都有一项任务 这将显示在交互式报告中 我现在需要做的是根据任务类型突出显示特定单元格 例如,背景单元格将为红色表示生病,绿色表示周末,等等 我可以使用额外的列 for case when "MD_TS_DETAIL"."JOB_TYPE_ID"= 20 then '#b0c4de' when "MD_T

我在Oracle APex中有一个非常大的自定义矩阵网格。 这将以标题形式显示月份(即1,2,3)的名称、区域和天数

排成350行。每个单元格中都有一个任务类型。因此,每个员工每天都有一项任务

这将显示在交互式报告中

我现在需要做的是根据任务类型突出显示特定单元格

例如,背景单元格将为红色表示生病,绿色表示周末,等等

我可以使用额外的列

for case when "MD_TS_DETAIL"."JOB_TYPE_ID"= 20 then '#b0c4de'
        when "MD_TS_DETAIL"."JOB_TYPE_ID" = 115 then '#000000'
   end text_color_1,

case when "MD_TS_DETAIL"."JOB_TYPE_ID"= 20 then 'blue'
        when "MD_TS_DETAIL"."JOB_TYPE_ID" = 115 then 'red'
   end back_color_1
然后调用column属性。但要做到这一点,我需要这样做多达31次,并不是非常动态

或者可以使用动作选择器内的突出显示,但这同样需要为每个单词和颜色设置一个过滤器。这同样不是一个好的解决方案

因此,可以基于值动态调用CSS或jQuery

因为我认为这是不可能的

像这样的事情


对于我来说,jQuery还早,因此可以清理它,但看起来它可能会帮助您完成任务。

编辑:考虑到矩阵的大小,这可能不是一个很好的答案,因为它会导致额外的200kB或更多不必要的数据传输。在这里,客户端是正确的方法

您可以将逻辑放在报表查询中。假设您已经用
class\u name1
class\u name2
等设置了CSS,类似这样的东西可能就可以了。记住将列显示类型设置为“标准报告列”,以便解释HTML

select '<div class="'||
       case MD_TS_DETAIL.JOB_TYPE_ID
       when 20  then 'class_name1'
       when 115 then 'class_name2'
       -- etc
       end||'">'||YOUR_COLUMN||'</div>'
...
选择“| |您的| |”列
...

使用CSS和jQuery的解决方案。 正如您提到的,您需要一个客户端解决方案。我更喜欢使用动态操作,以便从客户端获取资源

请按照以下步骤操作

  • 创建动态动作(组件视图-->动态动作-->按+按钮)。请对动态操作的属性进行一些更改。(事件-页面加载,没有客户端和服务器端条件)
  • 展开新添加的动态操作(假设名称为AddClass),您可以在下面找到两个文件夹/操作,TrueFalse。在True操作下添加名为show的新操作
  • 在True下对添加的操作进行一些更改(选择类型-JavaScript表达式,在JavaScript表达式中粘贴以下代码。)
  • $(文档).ready(函数(){
    $(“td:n子(6)”)。每个(函数(){
    如果($(this.text()=“病态”){
    $(this.parent().children().css({'background-color':'red'});
    }
    else if($(this.text()=“weekend”){
    $(this.parent().children().css({'background-color':'green'});
    }
    });
    });