Custom Visualfore Lookup

Custom Visualforce Lookup

If you are creating a Visualforce page with a Standard controller, you can easily create Lookup field. But when using a custom controller and you have to create Lookup field, What you will do? In that type of cases, you’ll have to create the functionality of lookup by yourself. In this arcticle we will see how to create Lookup field when using custom controller. For presentation, I have developed “Add New Contact” Page with Account Lookup (text field).


On Click Of magnifying glass image i am calling a function of Controller which is redirecting to a new ‘Account Lookup’ VF page.


And by clicking on any account name it will go back to the main page and Account Lookup text field is being populated.


Here is the Code:

Main VF page

<apex:page controller=”myController” tabStyle=”Contact”>
<apex:form >
<apex:actionFunction name=”callAction” action=”{!callLookup}”/>
<apex:sectionHeader title=”Add New Contact”/>
<apex:pageBlock >
<apex:pageBlockSection title=”Contact Information” columns=”1″>
<apex:inputText label=”First Name” value=”{!fName}”/>
<apex:inputText label=”Last Name” value=”{!lName}”/>
<apex:inputText label=”Account Lookup” style=”float:left;” value=”{!accName}”>
<apex:image value=”” height=”20″ onclick=”callAction()”/>
<apex:commandButton value=”Save” action=”{!save}”/>

Lookup Visualforce page

<apex:page controller=”myController” tabStyle=”Contact”>
<apex:sectionHeader title=”Account Lookup”/>
<apex:pageBlockSection columns=”1″>
<apex:repeat value=”{!accList}” var=”acc”>
<apex:commandLink value=”{!acc.Name}” action=”{!goBack}”>
<apex:param value=”{!acc.Name}” name=”AccName”/>
<apex:param value=”{!acc.Id}” name=”AccId”/>

Custom Controller

public class myController {
public String fName{get;set;}
public String lName{get;set;}
public String accName{get;set;}
public Id AccId{get;set;}
public List accList {get;set;}

public PageReference callLookup(){
accList = [Select id,Name from Account];
PageReference pr = new PageReference(‘/apex/AccLookup’);
return pr;

public PageReference goBack(){
accName = ApexPages.currentPage().getParameters().get(‘AccName’);
AccId = ApexPages.currentPage().getParameters().get(‘AccId’);
PageReference pr = new PageReference(‘/apex/AddNewContact’);
return pr;

public PageReference save(){
if(lName == null || lName == ”){
ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,’Last Name is Required!’));
return null;
Contact con = new Contact();
con.FirstName = fName;
con.LastName = lName;
con.AccountId = AccId;
insert con;

PageReference pr = new PageReference(‘/’+con.Id);
return pr;


Leave a Reply


We're not around right now. But you can send us an email and we'll get back to you, asap.


About Us

Forcetalks is a Salesforce collaboration platform for coders & developers, geeks & nerds, consultants & business heads, admins & architects, managers & marketers and of course the business owners. A community where you can learn from, where you can contribute to. For you. For Salesforce. Read More...

Copyright 2018 Forcetalks. All Right Reserved.

Log in with your credentials


Forgot your details?