【问题标题】:How to only display 'Edit' link on certain rows on apex interactive grid?如何仅在顶点交互式网格的某些行上显示“编辑”链接?
【发布时间】:2017-09-01 01:03:25
【问题描述】:

我有一个交互式报告 apex5.0,其中包含多个字段。 想禁用填充付款日期和代码的“编辑”铅笔选项链接。 仅当payment_date & 代码为空时才启用链接。 根据其列中的特定值禁用特定行的编辑按钮。

例如。如果网格有 3 列 A、B、C,并且 B 包含“Apple”和“01-jan-17”,则必须禁用该行的编辑按钮。

在 apex5.0 中执行此类功能有哪些不同的选项,根据特定条件启用和禁用“编辑”?

【问题讨论】:

    标签: oracle-apex oracle-apex-5


    【解决方案1】:

    您还可以在报告的查询中添加 case 语句。

    例如

    (Case when [some logic] then
      --display link
     '<a href="f?p=' || :APP_ID || ':47:' || :APP_SESSION || '::NO:47:P47_ID:'|| a.id || '" title="Edit"><img src="#IMAGE_PREFIX#menu/pencil16x16.gif" alt="" /></a>'
      End) as col_link
    

    上面的例子只会在满足 case 语句的情况下显示一个链接。该链接将指向第 47 页,我们将查询的 Id 列传递给第 47 页的项目 P47_ID

    为了将此新列视为链接,您必须将“显示为文本”属性更改为“标准报告列”;您可以在编辑报表属性时实现这一点。

    【讨论】:

      【解决方案2】:

      一种方法是在页面加载时使用 JavaScript: 假设第一列带有 ID,用于显示编辑链接。第二列是您的产品名称,例如 Apple。只需禁用单击此元素(带有 ID 的单元格)或更改链接、img 等。

      var table = $(".a-IRR-table tbody");
      table.find('tr').each(function (i, el) {
          var $tds = $(this).find('td'),
              productId = $tds.eq(0).text(), //first column with ID and edit link
              product = $tds.eq(1).text(),   //second column
              Quantity = $tds.eq(2).text();  //third column
      if (product == 'Apple'){
          $tds.eq(0).click(false);
          $tds.eq(0).replaceWith('');
      }
          
      });
      

      感谢这个 JavaScript 答案:Loop Through Each HTML Table Column and Get the Data using jQuery
      编辑: 要根据您的查询隐藏值,请使用 CASE。例如:

      SELECT
       CASE
        WHEN B = 'Apple' THEN
          '<img src="#IMAGE_PREFIX#edit.gif" alt="">'
        ELSE ''
      END edit_link,
      A,B,C
      FROM TABLE_NAME
      
    • 单击列 edit_link 并使其类型为 Link
    • 选择要编辑页面的目标
    • 对于链接文本选择#EDIT_LINK#
    • 转义特殊字符必须设置为 NO
    • 在报告属性上将 **Link Column** 设置为 **Exclude Link Column**(您有自定义链接列,因此不显示原始链接)
      *检查您的在线工作区,第 3 页*
    • 【讨论】:

      • 我有一个在线工作区..你能帮忙吗?
      • 当然,我可以试试:)
      • 你能检查一下吗.....工作区:AKIKA 用户名:akika1508@gmail.com 密码:esting123 参考申请:12345678 apex.oracle.com/en
      • 抱歉,提示登录凭据无效
      • 抱歉密码正在测试123
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2015-09-02
      • 1970-01-01
      • 2018-08-15
      相关资源
      最近更新 更多