禁用 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;
}
这里的想法是 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;
}