禁用 APEX 交互式网格中的项目 - 操作下拉菜单

Disabling Items in APEX Interactive Grid - Action Dropdown Menu

这里的想法是 remove/disable 来自交互式网格的 操作下拉菜单 中的某些项目。

到目前为止,我已经使用以下代码禁用了“聚合”选项:

`function(config) {
    config.initActions = function( actions ) {
        actions.hide("show-aggregate-dialog");
    }
    return config;
}`

现在我尝试对其他一些选项做同样的事情,例如 Refresh(显示为 Aktualisieren),但是添加到先前代码的以下行什么都不做:

 actions.hide("show-filter-dialog");

我已经尝试了一些尝试并删除其余部分,例如 none !important css 函数,但没有结果:

#ig_id button[data-action="show-filter-dialog"] {
    display: none !important;
}

我也尝试了 删除 操作,但没有成功:

actions.remove("show-filter-dialog");

同时使用 "Index menu removal" 函数,我设法删除了整个 Daten 选项,尽管我更愿意只禁用其中的某些项目,而不是整件事:

var $ = apex.jQuery;
   var toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
   config.toolbarData = toolbarData;
   toolbarData[3].controls[0].menu.items[3]['hide'] = true;
   return config;

是不是我用的方法有问题?他们有能力改变这些项目吗?或者我只能用插件来改变这些?

另外,有时我对应该把这些代码放在哪里感到困惑。 javascript 函数应该只放在交互式网格的 Attributes 部分还是放在 When Page Loaded 部分?

所以,经过一些试验和修改代码后,我设法解决了这里的所有问题。我发布了解决方案,以防其他人也想使用它。可能有更好、更容易和可能更统一的隐藏它的方法,而不是使用这么多不同的函数,但我想我必须先了解更多关于 Javascript 的知识。这是对我有用的代码和属性:

function(config) {
    config.initActions = function( actions ) {

        actions.hide("show-aggregate-dialog"); // hides Aggregate
        actions.hide("refresh"); // Hides Refresh inside "Data"
        actions.hide("chart-view"); // Hides Chart. Thanks to Alli Pierre Yotti in Apex Forums

        actions.remove("show-columns-dialog"); // Hides Columns
        actions.remove("show-filter-dialog"); // Hides Filter
        actions.remove("show-help-dialog"); // Hides Help
    }

   var $ = apex.jQuery;
   var toolbarData = $.apex.interactiveGrid.copyDefaultToolbar();
   config.toolbarData = toolbarData;
   toolbarData[3].controls[0].menu.items[4]['hide'] = true; // Hides Format
   toolbarData[3].controls[0].menu.items[8]['hide'] = true; // Hides Report

   config.features.flashback = false; // Hides Flashback

   return config;
}