function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Guru Vemuru 1Guru Vemuru 1 

How to hide One section in related list when we select one picklist vakue

Hi all,
I want to hide one section called "Maps" and whenever I select Picklist value as "Travel" this Map section should be visible.
And these Expense map section are the two VF pages, So how should I achieve this??

Any help will be grateful!
User-added image 
 
Shruti SShruti S
Could you please let me know if this whole page is a VF page? It would be great if you could post the URL of this page as it would help me decide if its a VF page of its own.

That will give us little more idea and we could possibly come up with a solution.
Guru Vemuru 1Guru Vemuru 1
Hi Shruti,
  
This is Object VF Code


<apex:page standardController="Expense_Line_Item__c" extensions="policyController" EXtensions="SaveAndNew" showHeader="true" >
 <apex:slds />  
 <div class="slds-scope">   
<script>
     function fetchAmount()
     {
     alert('Function Working');
     CallApexMethod();
     }
    
 </script>
         <apex:form >
         <apex:actionFunction name="CallApexMethod"  onComplete="alert('After apex method') ;" reRender="ren"/>
        <apex:outputPanel id="t1">
       
            <apex:pageBlock >                
                <apex:pageBlockSection columns="2" title="Information"> 
                    <apex:inputField value="{!Expense_Line_Item__c.Expense__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Date__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Name}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Bill_Available__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Merchant__c}" />
                </apex:pageBlockSection>
                <apex:pageBlockSection columns="2" title="Expense Details">
                    <apex:inputField value="{!Expense_Line_Item__c.Approved__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Amount__c}" id="testAmount" />
                    <apex:inputField value="{!Expense_Line_Item__c.Cost_Head__c}" >
                        <apex:actionSupport event="onchange" rerender="t1" />            
                    <apex:inputField value="{!Expense_Line_Item__c.Related_to_Campaign__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Campaign',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Related_to_Opportunity__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Opportunity',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Project__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Project',true,false  )}" />                                                            
                </apex:inputField>
                    <apex:inputField value="{!Expense_Line_Item__c.Payment_Type__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Comments__c}" />
                   <!-- <apex:outputPanel id="ren">-->
                    <apex:inputField value="{!Expense_Line_Item__c.Expense_Head__c}"  id="fetch1" >
                       <apex:actionSupport event="onchange" rerender="t1" />
                     
                    </apex:inputField>
                   <!-- </apex:outputPanel>-->
                </apex:pageBlockSection>
                
                 <!--  <apex:pageBlockTable value="{!Expense_Line_Item__c}" var="item" columns="2" >
               
      <apex:column> <apex:outputLabel >  <apex:inputField label="City"  value="{!item.City__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false )}" /></apex:outputLabel>
                   <apex:inputField label="Mode of travel" value="{!item.Mode_Of_Travel__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                  <apex:inputField label="Location from" value="{!item.Location_From__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" /> 
                                 <apex:inputField label="Location to" value="{!item.Location_To__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" /> </apex:column>
       <apex:column>       
                   <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Food',true,false  )}" /> </apex:column>
         <apex:column>           <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Entertainment',true,false  )}" /> </apex:column>
          <apex:column>          <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Lodging',true,false  )}" /> </apex:column>
           <apex:column> <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Others',true,false  )}" /> </apex:column>
                                                              
               </apex:pageBlockTable>-->
              
               <apex:pageBlockSection columns="2">
               
                    <apex:inputField value="{!Expense_Line_Item__c.City__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Mode_Of_Travel__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Location_From__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Location_To__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
              
                   <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Food',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Entertainment',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Lodging',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Others',true,false  )}" />
                                                              
               </apex:pageBlockSection>             
            </apex:pageBlock>
            <div align="center" draggable="false" >
            <apex:commandButton action="{!Save}" value="Save" />
            <apex:commandButton action="{!Cancel}" value="Cancel"/>
            <apex:commandButton action="{!saveNew}" value="Save and New"/>
                       </div> 
        </apex:outputPanel>
    </apex:form>
    </div>
</apex:page>


 
Map Code:
 
<apex:page showHeader="true" sidebar="true" standardController="Expense_Line_Item__c" >
<head>
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
   <title>Google Maps API v3 Directions Example</title>
   <script type="text/javascript" src="//maps.google.com/maps/api/js?sensor=true"></script>

</head><apex:form >
        
 Origin:  <apex:inputField value="{!Expense_Line_Item__c.Location_From__c }" id="origin"/>
  Destination:  <apex:inputField value="{!Expense_Line_Item__c.Location_To__c}" id="destination" />
  <apex:commandButton rendered="ISPICVAL(Expense_Head__c==Travel)"  value="Search" />
   </apex:form>

<body style="font-family: Arial; font-size: 12px;">

    <div style="width: 100%;" id="mapDiv">
        <div id="map" style="width: 60%; height: 600px; float: left;margin:0px;color:black;"></div>
        <div id="panel" style="width: 20%; float: left;margin:0px;"></div>
    </div>
    <script type="text/javascript">

     var directionsService = new google.maps.DirectionsService();
     var directionsDisplay = new google.maps.DirectionsRenderer();

     var map = new google.maps.Map(document.getElementById('map'), {
               zoom:4,
               mapTypeId: google.maps.MapTypeId.ROADMAP
     });

     directionsDisplay.setMap(map);
     directionsDisplay.setPanel(document.getElementById('panel'));


        document.getElementById("origin");
        document.getElementById("destination");
     var request = {
       origin: "{!Expense_Line_Item__c.Location_From__c}",
       destination:"{!Expense_Line_Item__c.Location_To__c}"
        ,
       travelMode: google.maps.DirectionsTravelMode.DRIVING  
     };

        directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(response);
       }
     });
     //document.getElementById("origin");
     //document.getElementById("destination");
     
     
   </script>
   
</body>
</apex:page>
            
Sekhar SekharSekhar Sekhar
Hi Guru
Here i am giving a sample code try this code
class
public class SectionHide
{
     public boolean boole{set;get;}
     public Practice2__c actcon {set;get;}
     public SectionHide(ApexPages.StandardController controller)
     {
         actcon= new Practice2__c (); 
       
         boole=false;
     }
      public PageReference priorityChanged()
      {
     
     if(actcon.Customer_Priority__c == 'Low')
          {
                  boole=true;
          }
          else
          {
              boole=false;
          }
          return null;
      }
}
Page
<apex:page standardController="Practice2__c" extensions="SectionHide" sidebar="false" showHeader="false">
<apex:form >
<br/><br/>
<apex:pageblock >
<apex:pageBlockSection title="If you will select Low Customer Priority then only Other Account Details section will display " columns="1"> <apex:actionRegion >
<p>Customer Priority :
      <apex:inputField value="{!actcon.Customer_Priority__c}">
      <apex:actionSupport event="onchange" action="{!priorityChanged}"/>
       </apex:inputField>
</p>
</apex:actionRegion>
</apex:pageblockSection>
<apex:pageblockSection title="Other Account Details" rendered="{!boole=true}" >
<apex:inputField value="{!actcon.Details__c}" required="true"/>
</apex:pageblockSection>
</apex:pageblock>
</apex:form>
</apex:page>
Guru Vemuru 1Guru Vemuru 1
Hi Sekhar Sekhar,
  

I use the same way I saved , But in preview, It showing Some error Like:

List index out of bounds: 1 
An unexpected error has occurred. Your development organization has been notified.

This my code
public class SectionHide
{
     public boolean boole{set;get;}
     public Expense_Line_Item__c actcon {set;get;}
     public SectionHide(ApexPages.StandardController controller)
     {
         actcon= new Expense_Line_Item__c(); 
       
         boole=false;
     }
      public PageReference priorityChanged()
      {
     
     if(actcon.Expense_Head__c== 'Travel')
          {
                  boole=true;
          }
          else
          {
              boole=false;
          }
          return null;
      }
}

 
Visual Code:
 
<apex:page standardController="Expense_Line_Item__c" extensions="SectionHide,SaveAndNew,policyController"   showHeader="true" >
 <apex:slds />  
 <div class="slds-scope">   
<script>
     function fetchAmount()
     {
     alert('Function Working');
     CallApexMethod();
     }
    
 </script>
         <apex:form >
         <apex:actionFunction name="CallApexMethod"  onComplete="alert('After apex method') ;" reRender="ren"/>
        <apex:outputPanel id="t1">
       
            <apex:pageBlock >                
                <apex:pageBlockSection columns="2" title="Information"> 
                    <apex:inputField value="{!Expense_Line_Item__c.Expense__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Date__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Name}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Bill_Available__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Merchant__c}" />
                </apex:pageBlockSection>
                <apex:pageBlockSection columns="2" title="Expense Details">
                    <apex:inputField value="{!Expense_Line_Item__c.Approved__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Amount__c}" id="testAmount" />
                    <apex:inputField value="{!Expense_Line_Item__c.Cost_Head__c}" >
                        <apex:actionSupport event="onchange" rerender="t1" />            
                    <apex:inputField value="{!Expense_Line_Item__c.Related_to_Campaign__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Campaign',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Related_to_Opportunity__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Opportunity',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Project__c}" rendered="{!IF( Expense_Line_Item__c.Cost_Head__c== 'Project',true,false  )}" />                                                            
                </apex:inputField>
                    <apex:inputField value="{!Expense_Line_Item__c.Payment_Type__c}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Comments__c}" />
                   <!-- <apex:outputPanel id="ren">-->
                    <apex:inputField value="{!Expense_Line_Item__c.Expense_Head__c}"  id="fetch1" >
                       <apex:actionSupport event="onchange" rerender="t1" />
                     
                    </apex:inputField>
                   <!-- </apex:outputPanel>-->
                </apex:pageBlockSection>
                
                 <!--  <apex:pageBlockTable value="{!Expense_Line_Item__c}" var="item" columns="2" >
               
      <apex:column> <apex:outputLabel >  <apex:inputField label="City"  value="{!item.City__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false )}" /></apex:outputLabel>
                   <apex:inputField label="Mode of travel" value="{!item.Mode_Of_Travel__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                  <apex:inputField label="Location from" value="{!item.Location_From__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" /> 
                                 <apex:inputField label="Location to" value="{!item.Location_To__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" /> </apex:column>
       <apex:column>       
                   <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Food',true,false  )}" /> </apex:column>
         <apex:column>           <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Entertainment',true,false  )}" /> </apex:column>
          <apex:column>          <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF(Expense_Line_Item__c.Expense_Head__c== 'Lodging',true,false  )}" /> </apex:column>
           <apex:column> <apex:inputField value="{!item.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Others',true,false  )}" /> </apex:column>
                                                              
               </apex:pageBlockTable>-->
              
               <apex:pageBlockSection columns="2">
               
                    <apex:inputField value="{!Expense_Line_Item__c.City__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Mode_Of_Travel__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Location_From__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Location_To__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Travel',true,false  )}" />
              
                   <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Food',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Entertainment',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Lodging',true,false  )}" />
                    <apex:inputField value="{!Expense_Line_Item__c.Sub_Expense__c}" rendered="{!IF( Expense_Line_Item__c.Expense_Head__c== 'Others',true,false  )}" />
                                                              
               </apex:pageBlockSection>   
                <apex:pageblockSection title="Map" rendered="{!boole=true}" >
                     <apex:inputField value="{!actcon.Location_From__c}" required="true"/>
                </apex:pageblockSection>         
            </apex:pageBlock>
            <div align="center" draggable="false" >
            <apex:commandButton action="{!Save}" value="Save" />
            <apex:commandButton action="{!Cancel}" value="Cancel"/>
            <apex:commandButton action="{!saveNew}" value="Save and New"/>
                       </div> 
        </apex:outputPanel>
    </apex:form>
    </div>
</apex:page>
Sekhar SekharSekhar Sekhar
see this link may be it helpful for u r error

https://developer.salesforce.com/forums/?id=906F00000008yWaIAI
 
Guru Vemuru 1Guru Vemuru 1
Can you please help me in problem and i am not able to complete this task.