Memos About Salesforce

Salesforceにハマってたこと!

VF actionSupport 利用 ルックアップボタン押下自動入力

こんにちは、管理人の@Salesforce.Zです。

lookupボタンを押下後に別の入力項目に参照先の値を自動反映したいが画面リフレッシュ、あるいはうまく設定できない

こんなことで悩んでいるでしょうか

読んだら得ること

★ VF画面のルックアップボタンにより別項目に参照先の項目値を自動入力

目次

VF画面でのルックアップ項目による自動入力

準備が必要なので、

1.Accountの子供のカスタムオブジェクト AccountChildを作成

2.1のオブジェクトにAccountParent というAccountの参照項目を追加

3.以下のコードで動作を確認してみてください。

VFサンプル

<apex:page standardController="AccountChaild__c" extensions="discus43Ext">
    <apex:form >
        取引先名
        <apex:inputField value="{!AccountChaild__c.AccountParent__c}">
                    <apex:actionSupport event="onfocus" 
                                action="{!doAccountId}" 
                                rerender="accid" />
        </apex:inputField>
        
        取引先ID
        <apex:outputpanel id="accid">
            <apex:inputText value="{!AccountParentId}" />
        </apex:outputpanel>

    </apex:form>
</apex:page>

クラスサンプル(拡張Controller)

public class discus43Ext {

    private final AccountChaild__c obj;

    public discus43Ext(ApexPages.StandardController stdController) {
        this.obj = (AccountChaild__c)stdController.getRecord();
    }
    
    public String AccountParentId{get; set;}

    
    public PageReference doAccountId(){

        AccountParentId = obj.AccountParent__c;
        return null;
    }
}

apex:actionSupportのRerenderが効かない時

こちらの記事apex:actionSupportのRerenderが効かない時を参照してください。