いくつかのVisualforceページにキャンセルボタン機能を実装する際に、同じような処理を書かなくていいように共通で使用できるキャンセルボタンコンポーネントを作ってみました。
説明
戻り先URLを受け取ってそのURLのページに遷移します。
戻り先URLがNULLの場合はホーム画面に遷移します。
パラメータについて
cancelButtonLabel
ボタンのラベルです。
画面によっては「キャンセル」や「戻る」など使い分けが必要になると思うので、引数で値を変更できるようにしてみました。
returnUrl
ボタンクリック時の遷移先URLです。
PageReference型で渡す必要があります。
reRenderArea
画面遷移する際にreRenderを行うIDを指定するためのものです。
reRenderを指定しないと遷移時に画面のチラツキがでてしまうので指定できるようにしてあります。
基本的にapex:formのIDを指定する想定です。
ページによってIDが異なるケースを想定して引数で変更できるようにしてみました。
使用例
次のように記載することで使用できます。
<apex:page controller="CancelButtonDemoController" title="CancelButtonDemoPage" id="page"> <apex:form id="form"> <c:CancelButton cancelButtonLabel="CancelButton" returnUrl="{!returnUrl}" reRenderArea="{!$Component.form}" id="c_cancelButton" /> </apex:form> </apex:page>
GitHub Link
Apex_CancelButtonComponent
https://github.com/tyoshikawa1106/Apex_CancelButtonComponent