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
Chamil MadusankaChamil Madusanka 

Dynamically Change value of page block table

Hi all,

Here the situation, There are dropdown menu and pageblocktable. I want to change the values of pageblocktable when cha change the value of dorp down. plz someone explain with a example.

 

Thanx

Chamil Madusanka

Ankit AroraAnkit Arora

Call Actionfunction on "OnChange" event of your picklist. From that actionfunction change the values in controller and reRender the pageblocktable. Refreshed values will be shown in pageblocktable.

 

Thanks

Ankit Arora

Blog | Facebook | Blog Page

Chamil MadusankaChamil Madusanka

/*page*/

 

<apex:page standardController="Applicant__c" recordSetVar="applicant" extensions="view">
  <apex:form >
      <apex:pageBlock >
          <apex:outputLabel value="Status :" for="status"/>
          <apex:inputField id="status" value="{!Applicant__c.Status__c}">
              <apex:param name="para" value="{!Applicant__c.Status__c}" assignTo="{!para}"/>
             
            <apex:actionSupport event="onchange" reRender="view"/>
          </apex:inputField>
      
      </apex:pageBlock>
       <apex:pageBlock >
           <apex:panelgroup id="view">
              <apex:pageBlockTable id="viewApplicant" value="{!applicant}" var="app">
                  <apex:column headerValue="Applicant ID" value="{app.Name}">
                              
                  </apex:column>
                  <!-- <apex:column headerValue="Applicant Name" value="{!app.Name__c}">
              
                  </apex:column>-->
              </apex:pageBlockTable>
           </apex:panelgroup>
      </apex:pageBlock> 
      
  </apex:form>
</apex:page>

/*controller*/

 

 

public class view {

    public Applicant__c applicant;
    public List<Applicant__c> applicantByStatus;
    private ApexPages.StandardSetController controller;
    private Set<String> selectedNames = new Set<String> ();
    
    public String para{
        get;
        
        set{
           para=value;
        
        }
    }
    
    public List<String> displayFields {
        get; private set;
    }
    
    public view(ApexPages.StandardSetController controller) {
        //this.applicant=(Applicant__c)controller.getRecord();
        this.controller = controller;
    }
    
    public List<Applicant__c> getApplicantByStatus(){
        
         applicantByStatus=new List<Applicant__c>();
         applicantByStatus=[SELECT Name,Name__c,Status__c,Interview_Date_Time__c FROM Applicant__c WHERE Status__c =:para];
         
         return applicantByStatus;
    }
    
    public PageReference getApplicantsByStatus(){
        
        controller.addFields(new List<String>(selectedNames));
        
        List<String> displayedNames = new List<String>(selectedNames);
        displayedNames.sort();
        displayFields = displayedNames;
       // applicant=[SELECT Name,Name__c,Status__c,Interview_Date_Time__c FROM Applicant__c WHERE Status__c =:para];
        
    
        return null;
    }  

}

 

 

This not worked.

What will be the issue?

 

 

MandyKoolMandyKool

   Hi,

 

   Change your code as shown below and check it. For sorting you can use "order by" clause in SOQL query. Still if u          face any issues let me know.

 

<apex:page standardController="Applicant__c" recordSetVar="applicant" extensions="view">
  <apex:form >
      <apex:pageBlock >
          <apex:outputLabel value="Status :" for="status"/>
          <apex:inputField id="status" value="{!Applicant__c.Status__c}">
              <apex:param name="para" value="{!Applicant__c.Status__c}" assignTo="{!para}"/>
             
            <apex:actionSupport event="onchange" action="{!getApplicationByStatus}" reRender="view"/>
          </apex:inputField>
      
      </apex:pageBlock>
       <apex:pageBlock>
           <apex:panelgroup id="view">
              <apex:pageBlockTable id="viewApplicant" value="{!applicationByStatus}" var="app">
                  <apex:column headerValue="Applicant ID" value="{app.Name}">
                              
                  </apex:column>
                  <!-- <apex:column headerValue="Applicant Name" value="{!app.Name__c}">
              
                  </apex:column>-->
              </apex:pageBlockTable>
           </apex:panelgroup>
      </apex:pageBlock> 
      
  </apex:form>
</apex:page>


/////////////////////////////////////////

//Controller Code

public class view {

    //public Applicant__c applicant;
    public List<Applicant__c> applicantByStatus {get;set;}
    private ApexPages.StandardSetController controller;
    private Set<String> selectedNames = new Set<String> ();
    
    public String para{
        get;
        
        set{
           para=value;
        
        }
    }
    
    public List<String> displayFields {
        get; private set;
    }
    
    public view(ApexPages.StandardSetController controller) {
        //this.applicant=(Applicant__c)controller.getRecord();
        this.controller = controller;
    }
    
    public List<Applicant__c> getApplicantByStatus(){
        
         applicantByStatus=new List<Applicant__c>();
         applicantByStatus=[SELECT Name,Name__c,Status__c,Interview_Date_Time__c FROM Applicant__c WHERE Status__c =:para];
         
         return applicantByStatus;
    } 
}
jvelazquezjvelazquez

I have same workaround. 

Here is the code. hopw this helps you

 

Visualforce page:

 

<apex:page standardController="Contact" extensions="customCtrl"  recordSetVar="contact" >
  <apex:pageBlock title="Viewing Contacts">
 

  <apex:form id="theForm">
    
      <apex:outputLabel value="View:"/>   
          <apex:selectList value="{!filterId}" size="1">       
            <apex:selectOptions value="{!listoptions}"/>
             <apex:actionSupport event="onchange" rerender="list"/>
          </apex:selectList>          
   
  <apex:outputPanel id="list"> 
   
  <apex:pageBlock rendered="{!filterId == 'All Contacts'}" mode="inlineEdit">      
                                       
                <apex:commandButton id="saveButton" value="Save" action="{!saveme}" title="Save" /> &nbsp;  
                <apex:commandButton id="cancelButton" onclick="resetInlineEdit()" value="Cancel" title="Cancel" immediate="true"/>  
                             
                    
          <apex:pageBlockTable var="c" value="{!contact}"  rows="50"> 
  
            <apex:column headerValue="Job Title">
               <apex:actionRegion >
                  <apex:outputField value="{!c.Title}">
                       <apex:inlineEditSupport event="ondblClick" showOnEdit="saveButton,cancelButton" />
                  </apex:outputField>
                </apex:actionRegion>
            </apex:column>                                      
            <apex:column headerValue="Status">
                   <apex:actionRegion >
                      <apex:outputField value="{!c.Status__c}">
                              <apex:inlineEditSupport event="ondblClick" showOnEdit="saveButton,cancelButton" />
                      </apex:outputField>
                   </apex:actionRegion>  
             </apex:column>                                          
             <apex:column value="{!c.Account_Type__c}" />
             <apex:column headerValue="Score" width="20">              
                  <apex:outputField value="{!c.Eloqua_SPF_Score__c}"/>                
            </apex:column>                       
             <apex:column value="{!c.Last_Activity_Date_SPF__c}" />  
      </apex:pageBlockTable>       
   </apex:pageBlock> 
 
     <apex:pageBlock rendered="{!filterId == 'Recently Viewed Contacts'}">
        <apex:pageBlockButtons >
                <apex:commandButton id="saveButton" value="Save"  action="{!saverecent}" />  
                <apex:commandButton id="cancelButton" onclick="resetInlineEdit()" value="Cancel" immediate="true"/>  
        </apex:pageBlockButtons>   
             
      <apex:pageBlockTable var="c" value="{!contactRecent}"  rows="100"> 
          
             
            <apex:column headerValue="Status">
                   <apex:actionRegion >
                      <apex:outputField value="{!c.Status__c}">
                              <apex:inlineEditSupport event="ondblClick" showOnEdit="saveButton,cancelButton" />
                      </apex:outputField>
                   </apex:actionRegion>  
             </apex:column>
           
             <apex:column value="{!c.Account_Type__c}" />  
      </apex:pageBlockTable>  
   </apex:pageBlock>
  </apex:outputPanel>       
  </apex:form> 
 </apex:pageBlock>
</apex:page>

 Controller:

 

public class customCtrl {

    public List<Contact> contact{get; set;}
    public List<Contact> contactRecent{get; set;}
    public set<Id> contactId{get; set;}
    public String filterId{get; set;}
    private List<SelectOption> listoptions;
            
    public customCtrl(ApexPages.StandardSetController controller) {
 
         contact = [Select Name, AccountID, Title, Status__c, Country__c,Email,Phone,Site__c,MobilePhone,Account_Type__c,Last_Activity_Date_SPF__c,Eloqua_SPF_Score__c,MailingState,Aname__c, Account_Phone__c  from Contact ORDER BY Last_Activity_Date_SPF__c];                                   
          contactRecent = [Select Name, AccountID, Title, Status__c, Country__c,Email,Phone,Site__c,MobilePhone,Account_Type__c,MailingState,Aname__c, Account_Phone__c,Eloqua_SPF_Score__c  from Contact WHERE LastViewedDate != NULL ORDER BY LastViewedDate DESC];//[Select id from RecentlyViewed  where Type = 'Contact'];  
        
    }
    
    public List<Contact> getContact(){
        
        
        return contact;    
    
    }
   
    public List<Contact> getContactRecent(){
    
        return contactRecent;
    }
    
    public PageReference saveme(){
   
           update contact;
           return null;
   }
    
    
    public PageReference saverecent(){
   
           update contactRecent;
           return null;
   }
   
   public PageReference refreshPage(){
           
           update contact;
           return null;
   
   }
   
   public List<SelectOption> getListoptions() {
   
        listoptions= new List<SelectOption>();   
        listoptions.add(new selectOption('', 'None'));       
        listoptions.add(new selectOption('All Contacts', 'All Contacts'));
        listoptions.add(new SelectOption('Recently Viewed Contacts', 'Recently Viewed Contacts'));
        return listoptions;
        }
}