在 APEX 交互式网格中编辑 "Row-Action" 菜单
Editing "Row-Action" Menu in APEX Interactive Grid
如何更改 Apex 中 行操作 菜单的 选择 部分中的可用选项?
我能够更改 线路菜单 上的选项,但我仍在努力更改 选择菜单 上的任何内容.
左侧选择菜单 & 右侧线路菜单
你可以试试这样:
- 在页面级别加载页面时添加该代码属性
$(function() {
// Add new Element in the selection action menu
$("#emp_ig_selection_actions_menu").menu("option").items.push({
type: "action",
id: "irHello",
hide: false,
label: 'hello world',
icon: 'fa fa-home',
action: function() {
alert("hello world");
}
});
// Disable Items in the Menu
apex.region("emp").widget().interactiveGrid("getActions").disable("selection-duplicate");
apex.region("emp").widget().interactiveGrid("getActions").disable("selection-revert");
});
要了解菜单小部件的工作原理,请查看此处
https://docs.oracle.com/database/apex-18.2/AEXJS/menu.html
我找到了我想要的编辑解决方案。在这里分享给可能也想使用它的人。
function(config) {
config.initActions = function( actions ) {
// löscht die Option "Single Row-Ansicht"
actions.remove("single-row-view");
actions.remove("selection-duplicate");
actions.remove("selection-refresh");
};
return config;
}
通过使用 remove 操作,而不是 widget.disable,我能够从 我打算更改的选择菜单。
编辑:APEX 18.2 似乎添加了一些新选项。以下是我目前发现的禁用它们的代码。我还没有弄清楚如何删除的是 "Fill" 和 "Clear" 选项。希望它对任何试图摆脱这些选项的人都有用。
针对此处显示的前两个选项的代码是:
actions.remove("selection-copy");
actions.remove("selection-duplicate");
我曾尝试对填充和清除选项使用 "selection" 前缀,但无济于事。如果有人知道他们的代码,请告诉我。
我也是新手。所以装饰性地,我能够通过选择完全删除 "Row Action " 行选项:- Page Designer -> Content Body-> APEX$Row_Action->GO TO Right Side -> security -> Authorization Scheme -> {不是“有权访问页面的角色”权限}
对于工具栏,我使用了一个已经发现的 hack,我在属性下的 Java 初始化代码区域中输入了该 hack:
function(config) {
var $ = apex.jQuery;
var toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
toolbarData.splice(5,3);
//remove actions button
config.autoAddRow = false;
config.toolbarData = toolbarData;
return config
}
要隐藏行级选项(在本例中为 "Delete record"),我使用以下 CSS:
[id$='ig_row_actions_menu_5'].a-Menu-item,li[id$='ig_row_actions_menu_5'] + .a-Menu-itemSep{
display:none
}
通过结合 alli pierre yotti 和 AWildmann,
也就是说,我完全按照 alli pierre yotti 的建议做了,但是用 AWildmann.
引用的 remove() 替换了 disable() 方法
这是我在页面级别的“页面加载时执行”属性中放置的代码。我还用一个变量替换了硬连线引用的区域名称,只是为了简化将来对区域静态 ID 的更改,以及使将此代码复制到其他页面更简单,但这对解决方案没有影响。
$(function() {
regionStaticId = "emp"
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-duplicate");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-copy");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-fill");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-copy-down");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-clear");
});
感谢解决方案的原始贡献者,我只是做了一些肤浅的贡献。
我之前没有在 Whosebug 上发帖,如果我应该以特殊方式标记对其他贡献者的引用,我深表歉意。
如何更改 Apex 中 行操作 菜单的 选择 部分中的可用选项?
我能够更改 线路菜单 上的选项,但我仍在努力更改 选择菜单 上的任何内容.
左侧选择菜单 & 右侧线路菜单
你可以试试这样:
- 在页面级别加载页面时添加该代码属性
$(function() {
// Add new Element in the selection action menu
$("#emp_ig_selection_actions_menu").menu("option").items.push({
type: "action",
id: "irHello",
hide: false,
label: 'hello world',
icon: 'fa fa-home',
action: function() {
alert("hello world");
}
});
// Disable Items in the Menu
apex.region("emp").widget().interactiveGrid("getActions").disable("selection-duplicate");
apex.region("emp").widget().interactiveGrid("getActions").disable("selection-revert");
});
要了解菜单小部件的工作原理,请查看此处 https://docs.oracle.com/database/apex-18.2/AEXJS/menu.html
我找到了我想要的编辑解决方案。在这里分享给可能也想使用它的人。
function(config) {
config.initActions = function( actions ) {
// löscht die Option "Single Row-Ansicht"
actions.remove("single-row-view");
actions.remove("selection-duplicate");
actions.remove("selection-refresh");
};
return config;
}
通过使用 remove 操作,而不是 widget.disable,我能够从 我打算更改的选择菜单。
编辑:APEX 18.2 似乎添加了一些新选项。以下是我目前发现的禁用它们的代码。我还没有弄清楚如何删除的是 "Fill" 和 "Clear" 选项。希望它对任何试图摆脱这些选项的人都有用。
针对此处显示的前两个选项的代码是:
actions.remove("selection-copy");
actions.remove("selection-duplicate");
我曾尝试对填充和清除选项使用 "selection" 前缀,但无济于事。如果有人知道他们的代码,请告诉我。
我也是新手。所以装饰性地,我能够通过选择完全删除 "Row Action " 行选项:- Page Designer -> Content Body-> APEX$Row_Action->GO TO Right Side -> security -> Authorization Scheme -> {不是“有权访问页面的角色”权限}
对于工具栏,我使用了一个已经发现的 hack,我在属性下的 Java 初始化代码区域中输入了该 hack:
function(config) {
var $ = apex.jQuery;
var toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
toolbarData.splice(5,3);
//remove actions button
config.autoAddRow = false;
config.toolbarData = toolbarData;
return config
}
要隐藏行级选项(在本例中为 "Delete record"),我使用以下 CSS:
[id$='ig_row_actions_menu_5'].a-Menu-item,li[id$='ig_row_actions_menu_5'] + .a-Menu-itemSep{ display:none }
通过结合 alli pierre yotti 和 AWildmann, 也就是说,我完全按照 alli pierre yotti 的建议做了,但是用 AWildmann.
引用的 remove() 替换了 disable() 方法这是我在页面级别的“页面加载时执行”属性中放置的代码。我还用一个变量替换了硬连线引用的区域名称,只是为了简化将来对区域静态 ID 的更改,以及使将此代码复制到其他页面更简单,但这对解决方案没有影响。
$(function() {
regionStaticId = "emp"
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-duplicate");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-copy");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-fill");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-copy-down");
apex.region(regionStaticId).widget().interactiveGrid("getActions").remove("selection-clear");
});
感谢解决方案的原始贡献者,我只是做了一些肤浅的贡献。
我之前没有在 Whosebug 上发帖,如果我应该以特殊方式标记对其他贡献者的引用,我深表歉意。