如何仅显示'编辑'在顶点交互式网格上的某些行上链接?

时间:2017-04-06 06:48:49

标签: oracle-apex oracle-apex-5

我有一个交互式报告apex5.0,其中包含几个字段。 想要停用'编辑'铅笔选项链接,其中payment_date&代码已填充。 仅在payment_date&代码为空。 根据列中的特定值禁用特定行的编辑按钮。

对于前。如果网格有3列A,B,C,如果B包含" Apple"和' 01-jan-17',则必须禁用该行的编辑按钮。

在apex5.0中执行此类功能有哪些不同的选项,启用&禁用"编辑"根据某些标准?

2 个答案:

答案 0 :(得分:3)

您还可以在报告的查询中添加案例陈述。

E.g。

(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

为了将此新列视为链接,您必须将&#34;显示更改为文本&#34;属性为&#34;标准报告栏&#34 ;;您可以在编辑报告属性时实现此目的。

答案 1 :(得分:0)

一种方法是在页面加载时使用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);
}

});

感谢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
  • 在报告属性上将链接列设置为排除链接列(您有自定义链接列,因此不显示原始链接)
    检查您的在线工作空间,第3页

    @boris,谢谢它似乎在网上工作区工作..但是我想尝试在测试环境中做同样的事情。与ords只获得链接没有铅笔..这很奇怪!终于通过css隐藏了它:谢谢你的帮助欢呼!!