You need to sign in to do that
Don't have an account?
How to show and hide lookup field based on different objects using visualforce page?
Hi,
Currently I have 4 objects A,B,C and D these are the parent object for Object O. So when I come from record A, on object O page layout i want to display only A's lookup field and hide rest 3 lookup fields B,C, D.
Similarly when I come from record B, on O's page layout I want to display B's lookup field and hide 3 rest lookup fields A,C, D.
And so on for remaining 2 objects..
I know this can be achieved through record type, but in my requirement they dont want to achieve it through standard record type so I want to use Visualforce page to avoid record type selection menu.
I have done some initial hands on but not getting up to the mark... please help!!!!
NOTE:I have replaced Fund, CDE, Allocatee and Project with A, B, C and D and program with O.
<apex:page standardController="program__c" extensions="Program_Ext" id="pagecamt">
<apex:form id="frmCmpt">
<apex:pageBlock tabStyle="program__c" >
<apex:pageBlockButtons >
<apex:commandButton action="{!save}" value="Save" />
<apex:commandButton action="{!Cancel}" value="Cancel" />
</apex:pageBlockButtons>
<apex:pageBlockSection title="Information" columns="1">
<apex:inputField value="{!program__c.Name}" id="inputTypeField" required="true" />
<apex:inputField value="{!program__c.Fund__c}" id="form2" rendered="{!showlen}" />
<apex:inputField value="{!program__c.CDE__c}" id="form3" rendered="{!showlen1}" />
<apex:inputField value="{!program__c.Allocatee__c}" id="form4" rendered="{showlen2}" />
<apex:inputField value="{!program__c.Project__c}" id="form5" rendered="{!showlen3}"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
CONTROLLER
public class Program_Ext {
public Program_Ext(ApexPages.StandardController controller) {
}
public Boolean showLen {
get {
if (program__c.Fund__c!= null && program__c.CDE__c == null && program__c.Allocatee__c== null && program__c.Project== null ) {
return true;
} else {
return false;
}
}
set;}
public Boolean showLen1 {
get {
if ( program__c.CDE__c != null && program__c.Fund__c == null && program__c.Allocatee__c == null && program__c. Project__c == null) {
return false;
} else {
return true;
}
}
set;}
public Boolean showLen2 {
get {
if ( program__c.Allocatee__c != null && program__c.CDE__c == null && program__c.Fund__c == null && program__c. Project__c == null) {
return false;
} else {
return true;
}
}
set;}
public Boolean showLen1 {
get {
if ( program__c.CDE__c == null && program__c.Fund__c == null && program__c.Allocatee__c ==null && program__c. Project__c != null) {
return false;
} else {
return true;
}
}
set;}
}
its still showing all the lookup fields on Vf and not hiding any.. please help
as per understood your code
On pageload it giving true
so write a constructor for that class
public class Program_Ext {
public Program_Ext(ApexPages.StandardController controller) {
showlen=false;
showlen1=false;
showlen2=false;
showlen3=false;
}
Then you can follow up with your code..
Stil if you didn't get your requirement...
use System.Debug();
For every step and go through it..
If It is helpful plz make it as solution for others it may benfit
Prem