標準リストコントローラを使用したカスタムリストボタンの追加
標準ボタンやリンクを上書きすることに加えて、標準リストコントローラを使用するページにリンクするカスタムリストボタンを作成することもできます。これらのリストボタンは、オブジェクトのリストページ、検索結果、および関連リストで使用できます。また、これらのリストボタンを使用すると、選択したレコードのグループに対してアクションを実行できます。選択されたレコードのセットを示すには、{!selected} 式を使用します。
たとえば、カスタムボタンを商談の関連リストに追加して、選択したレコードの商談フェーズと完了日を編集して保存できるようにする手順は、次のとおりです。
- 次の Apex クラスを作成します。
1public class tenPageSizeExt { 2 3 public tenPageSizeExt(ApexPages.StandardSetController controller) { 4 controller.setPageSize(10); 5 } 6} - 次のページを作成し、oppEditStageAndCloseDate をいう名前を付けます。
1<apex:page standardController="Opportunity" recordSetVar="opportunities" tabStyle="Opportunity" extensions="tenPageSizeExt"> 2 <apex:form > 3 <apex:pageBlock title="Edit Stage and Close Date" mode="edit"> 4 <apex:pageMessages /> 5 <apex:pageBlockButtons location="top"> 6 <apex:commandButton value="Save" action="{!save}"/> 7 <apex:commandButton value="Cancel" action="{!cancel}"/> 8 </apex:pageBlockButtons> 9 <apex:pageBlockTable value="{!selected}" var="opp"> 10 <apex:column value="{!opp.name}"/> 11 <apex:column headerValue="Stage"> 12 <apex:inputField value="{!opp.stageName}"/> 13 </apex:column> 14 <apex:column headerValue="Close Date"> 15 <apex:inputField value="{!opp.closeDate}"/> 16 </apex:column> 17 </apex:pageBlockTable> 18 </apex:pageBlock> 19 </apex:form> 20 </apex:page> - すべてのユーザがそのページを使用できるようにします。
- [設定] で、 をクリックします。
- oppEditStageAndCloseDate ページの [セキュリティ] をクリックします。
- 適切なプロファイルを [有効にされたプロファイル] リストに追加します。
- [保存] をクリックします。
- 商談にカスタムボタンを作成します。
- [設定] から、 をクリックします。
- [新規ボタンまたはリンク] をクリックします。
- [表示ラベル] を「フェーズと日付の編集」に設定します。
- [表示の種類] を [リストボタン] に設定します。
- [内容のソース] を、[Visualforce ページ] に設定します。
- [コンテンツ] ドロップダウンリストから、[oppEditStageAndCloseDate] を選択します。
- [保存] をクリックします。
- ボタンはページレイアウトを更新するまで表示されないことを通知する警告が表示されます。[OK] をクリックします。
- 取引先ページレイアウトにカスタムボタンを追加します。
新規ボタンの例
商談を選択して、[編集のフェーズと日付] をクリックすると、カスタム編集ページが表示されます。
カスタム編集ページの例