如何仅在顶点交互式网格的某些行上显示 'Edit' link?
How to only display 'Edit' link on certain rows on apex interactive grid?
我有一个包含多个字段的交互式报告 apex5.0。
想要禁用 'edit' 铅笔选项 link,其中填充了 payment_date & 代码。
Link 仅在 payment_date
& code 为空的情况下启用。
根据列中的特定值禁用特定行的编辑按钮。
例如。如果网格有 3 列 A、B、C,并且 B 包含 "Apple" 和“01-jan-17”,则必须禁用该行的编辑按钮。
在 apex5.0 中执行此类功能有哪些不同的选项,根据特定条件启用和禁用 "EDIT"?
一种方法是在页面加载时使用 JavaScript:
假设第一列带有 ID 并用于显示编辑 link。第二列是您的产品名称,例如 Apple。只需禁用点击此元素(带有 ID 的单元格)或更改 link、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
编辑:
根据您的查询用例隐藏值。例如:
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 类型
选择要编辑页面的目标
对于 link 文本 select #EDIT_LINK#
转义特殊字符必须设置为NO
在报告属性中将 **Link 列** 设置为 **排除 Link 列**(您有自定义 link 列,因此不显示原始 link)
*检查您的在线工作空间,第 3 页*
您还可以在报告的查询中添加案例陈述。
例如
(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语句才会显示一个link。 link 将指向第 47 页,我们会将查询的 Id 列传递给第 47 页的项目 P47_ID
为了将此新列视为 link,您必须将 "display as text" 属性 更改为 "standard report column";您可以在编辑报告属性时实现此目的。
我有一个包含多个字段的交互式报告 apex5.0。
想要禁用 'edit' 铅笔选项 link,其中填充了 payment_date & 代码。
Link 仅在 payment_date
& code 为空的情况下启用。
根据列中的特定值禁用特定行的编辑按钮。
例如。如果网格有 3 列 A、B、C,并且 B 包含 "Apple" 和“01-jan-17”,则必须禁用该行的编辑按钮。
在 apex5.0 中执行此类功能有哪些不同的选项,根据特定条件启用和禁用 "EDIT"?
一种方法是在页面加载时使用 JavaScript: 假设第一列带有 ID 并用于显示编辑 link。第二列是您的产品名称,例如 Apple。只需禁用点击此元素(带有 ID 的单元格)或更改 link、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
编辑:
根据您的查询用例隐藏值。例如:
SELECT
CASE
WHEN B = 'Apple' THEN
'<img src="#IMAGE_PREFIX#edit.gif" alt="">'
ELSE ''
END edit_link,
A,B,C
FROM TABLE_NAME
*检查您的在线工作空间,第 3 页*
您还可以在报告的查询中添加案例陈述。
例如
(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语句才会显示一个link。 link 将指向第 47 页,我们会将查询的 Id 列传递给第 47 页的项目 P47_ID
为了将此新列视为 link,您必须将 "display as text" 属性 更改为 "standard report column";您可以在编辑报告属性时实现此目的。