2021年9月6日月曜日

単一行ビューのアクション・メニューよりRefreshを除く

 対話グリッドの静的IDとしてempが設定が設定されているとします。

ページ・プロパティJavaScriptページ・ロード時に実行に以下のコードを記述します。これで単一行ビューのアクション・メニューからRefreshが除かれます。

let grid = apex.region("emp").widget();
let sv$ = grid.interactiveGrid("getViews", "grid").singleRowView$;
let actions = sv$.recordView("getActions");
actions.remove("refresh-record");


ページを実行すると、Refreshがなくなっていることが確認できます。


単一行ビューのリフレッシュでなければ、対話グリッドのJavaScript初期化コードから無効化できます。

function(config) {
config.initActions = function(actions) {
actions.remove("refresh"); // アクションのDataのRefresh
actions.remove("row-refresh"); // 行メニューのRefresh
actions.remove("selection-refresh"); // アクションのセレクションのRefresh
actions.remove("refresh-record"); // これは効かない
}
return config;
}


アクションデータリフレッシュはこちらです。

アクションセレクションリフレッシュです。


行メニューリフレッシュです。


先程のJavaScript初期化コードが記述されていると、上記すべてがメニューから除かれます。

もしかしたらdefaultSingleRowOptionsactionsContextを設定することで、単一行ビューのメニューをカスタマイズできるかもしれません。試してみましたが成功しなかったので、メニューが初期化された後に、actionsメニューから取り除きました。

以上になります。

Oracle APEXのアプリケーション作成の参考になれば幸いです。