You need to sign in to do that
Don't have an account?

VisualforceページでLookup
Visualforceで作り込んだページにルックアップ付きの入力フォームを組み込みたいと考えています。
これを実現するためのApexタグ(<apex:???>)は提供されているでしょうか。
また、提供されていない場合、どのようにすれば実現できるでしょうか。
のあたりを参考にしてみていますが、上手くいかず。。。
何かご存知の方、おられましたら、よろしくお願いします。
ルックアップ付きのフィールドとしては、
<apex:inputField>
があります。
こちらを参照下さい。
apex:inputField のリファレンス
<apex:inputField value={!xxxx} />
という感じに書きます。また、value にはsObjectのField(他オブジェクトへの「参照」用として定義されたフィールド)を指定すればOKです。
ありがとうございます。
<apex:inputField>を使うことで、lookupアイコン付きの入力フィールドを表示することができました。
ただ、lookupアイコンを押すと、表示される検索画面が意図したオブジェクトの検索を行わない状態になっています。
例えばContactテーブルをlookupで検索するようにしたい場合は、
Visualforceには
<apex:inputField id="theLookup" value="{!contact.AccountId}"/>
Apexには
public List<Contact> contacts {
get {
if(contacts== null) {
contacts = [SELECT Id, Name, Account.Name, Phone, Email FROM Contact ORDER BY LastModifiedDate DESC LIMIT 10];
}
return contacts;
}
set;
}
public Contact getContact() {
Id id = System.currentPageReference().getParameters().get('id');
return id == null ? new Contact() : [SELECT Id, Name FROM Contact WHERE Id = :id];
}
のように記述しているのですが、Contactを検索するlookupになりませんでした。
どのオブジェクトを検索対象とするかは
<apex:inputField id="theLookup" value="{!contact.AccountId}"/>
のvalueの値だけで決まるのでしょうか。何か他に紐づけが必要でしょうか。
<apex:page>のcontroller属性(<apex:page controller="***">)を対象オブジェクト(Conntacts)等にしないといけないでしょうか。
自己解決できました。
<apex:inputField value="{!XXX}"/>
のvalue(XXX)に検索対象としたいSObjectのカラムを指定することで希望のデータを検索するようにできました。
ありがとうございました。