tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:ApexとjQuery Block UI

f:id:tyoshikawa1106:20150110001410p:plain

Apexの処理を実行中に他の操作を行われないように画面をブロックする場合、自分はactionStatusを使用する方法で対応していたのですが、このactionStatusは一度に複数指定することができませんでした。

AJAX Multiple actionStatus calling two different apex:actionStatus - Salesforce Developer Community


別のブロック方法で対応する必要があったので、参考になる情報を探してみるとSalesforce Developers BlogでjQuery Block UIを使用した方法が紹介されていました。

f:id:tyoshikawa1106:20150110001031p:plain


onclick, action, oncompleteの3つの処理を使って対応すればいいみたいです。

<apex:commandButton onclick="blockme()"
    oncomplete="j$.unblockUI();"
    value="Save!"
    action="{!quickSave}" />


commandButtonのときにはこれで問題なかったのですが、actionSupportタグから処理を実行したい場合はonClickやonChangeでJavaScriptを呼び出せません。何か方法はないか試してみたところ、"onSubmit"を指定することで問題なく実行できました。


動作確認用のサンプルです。

Visualforce - jQuery Block UI Demo


jQueryとjQueryBlockUIは以下のリンク先からダウンロードして静的リソースにアップすれば使用できます。

デモ動画