MENU
Abo
某SIer勤務。
新卒文系からエンジニア就職。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Salesforce】カスタムボタンでVisualforceを選択できない時の対処法

カスタムボタンを作成し、Visualforceを選択しようとするも、選択可能なVisualforceが表示されない、、、

そんな時に役に立つ記事になります。

目次

コンストラクタが必要だった

カスタムボタンでVisualforceを指定するには、Visualforceから呼び出されるApexでコンストラクタを作成する必要があります。

作成するコンストラクタの引数としては以下の2種類があり、カスタムボタンの「表示の種類」によって使い分けます。

  • 詳細ページリンク・ボタンの場合
    ⇒ ApexPages.StandardController
  • リストボタンの場合
    ⇒ ApexPages.StandardSetController

詳細ページリンク・ボタンの場合

作成するカスタムボタンのが「詳細ページリンク」、もしくは「詳細ページボタン」の場合、コンストラクタの引数として「ApexPages.StandardController」を使用します。

<apex:page StandardController="Contact" extensions="DeleteContactController" action="{!execute}">

</apex:page>
public class DeleteContactController {
    
    //コンストラクタ
    public DeleteContactController(ApexPages.StandardController controller){

    } 
    
    public pageReference execute(){
        
        /**
         * 処理を記述
         */
        
        return null;
    }

}

リストボタンの場合

作成するカスタムボタンのが「リストボタン」の場合、コンストラクタの引数として「ApexPages.StandardSetController」を使用します。

また、StandardSetControllerを使用する場合、Visualforce側に「recordSetVar」を指定する必要があります。

<apex:page StandardController="Contact" extensions="DeleteContactController" action="{!execute}" recordSetVar="contacts">

</apex:page>
public class DeleteContactController {
    
    public DeleteContactController(ApexPages.StandardSetController controller){

    } 
    
    public pageReference execute(){
        
        /**
         * 処理を記述
         */
        
        return null;
    }

}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
新卒文系からエンジニア就職。
日々の学びをつらつらと書いています。
保有資格:Salesforce認定アドミニストレーター
     Salesforce認定Platformデベロッパー
     Salesforce認定上級Platformデベロッパー

コメント

コメントする

CAPTCHA


目次