在APEX Interactive Grid中编辑“行动作”菜单

时间:2018-10-09 08:40:42

标签: javascript oracle-apex oracle-apex-5

如何在Apex的行动作菜单的选择部分中更改可用选项?

我能够更改 Line Menu(行菜单)上的选项,但是我仍在努力更改 Selection Menu(选择菜单)上的任何内容。

左侧的选择菜单和右侧的线路菜单

enter image description here

5 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

  • 在“页面级页面加载”属性时在执行时添加该代码

   

 $(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

enter image description here

enter image description here

演示:https://apex.oracle.com/pls/apex/f?p=28835:2

答案 1 :(得分:1)

我也是新手。因此,从装饰性上讲,我可以通过选择以下选项来完全删除“行”行选项:-页面设计器->内容正文-> APEX $ Row_Action->转到右侧->安全性->授权方案-> {不是有权访问页面“权利”

对于工具栏,我使用了一个已经发现的黑客,该黑客是我在Java初始化代码区域的Attributes下输入的:

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
}

答案 2 :(得分:1)

通过结合 alli pierre yottiAWildmann 的解决方案,我可以省略“填充”和“清除”菜单选项(以及您想要的任何其他选项), 即我完全按照 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");

});

感谢解决方案的原始贡献者,我只是以肤浅的方式做出了贡献。

我之前没有在 stackoverflow 上发帖,如果我应该以特殊方式标记对其他贡献者的引用,我深表歉意。

答案 3 :(得分:0)

我找到了想要的编辑解决方案。在此处将其共享给可能也想要使用它的人。

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;
}

通过使用删除操作,而不是 widget.disable ,我能够从选择菜单中删除这些字段改变。

enter image description here

编辑:APEX 18.2似乎添加了一些新选项。这是到目前为止我发现禁用它们的代码。我仍然不知道如何删除的选项是“填充”和“清除”选项。希望它对尝试摆脱这些选项的人有用。

针对此处显示的前两个选项的代码为:

actions.remove("selection-copy");
actions.remove("selection-duplicate");

我尝试将“ selection”前缀用于填充和清除选项,但无济于事。如果有人知道他们的密码,请告诉我。

enter image description here

答案 4 :(得分:0)

要隐藏行级选项(在本例中为“删除记录”),我使用以下CSS:

[id $ ='ig_row_actions_menu_5']。a-菜单项,li [id $ ='ig_row_actions_menu_5'] + .a-菜单项9 {   显示:无 }