Pages

Friday, September 27, 2013

Displaying Selected Records Below With Help of Action Support Function

Scenario:
       I want to retrieve few records from a particular object and to display them in a Page Block Table along with checkbox for each row in a Table .Now,I will select few records from that table and I will display them in below PageBlock Table with the help of Action Support Function.


VisualForce Page:

<apex:page controller="wrapperClassController">
  <apex:form >
    <apex:pageBlock >
      <!-- In our table we are displaying the cContact records -->
      <apex:pageBlockTable value="{!contacts}" var="c" >
         <apex:column >
            <apex:actionSupport event="onclick" action="{!processSelected}" reRender="pbt2">
              <!-- This is our selected Boolean property in our wrapper class -->
                <apex:inputCheckbox value="{!c.selected}" />
            </apex:actionSupport>
         </apex:column>
         <!-- This is how we access the contact values within our cContact container/wrapper -->
         <apex:column value="{!c.con.Name}" />
         <apex:column value="{!c.con.Email}" />
         <apex:column value="{!c.con.Phone}" />
       </apex:pageBlockTable>

    </apex:pageBlock>
      <apex:pageBlock id="test">
        <apex:outputPanel id="pbt2">
          Total No of Selected Records :<apex:outputText value="{!value }"/>
          <apex:pageBlockTable value="{!SelectedContacts}" var="c" >
             <apex:column value="{!c.Name}" />
             <apex:column value="{!c.Email}" />
             <apex:column value="{!c.Phone}" />
          </apex:pageBlockTable>
        </apex:outputPanel>
      </apex:pageBlock>
    </apex:form>
</apex:page>

Controller Class:

public class wrapperClassController
{
 //Our collection of the class/wrapper objects cContact
 public List<cContact> contactList {get; set;}
 public List<Contact> selectedContacts{get;set;}
 public Integer value {get;set;}

 public List<cContact> getContacts()

 {
  if(contactList == null) {
   contactList = new List<cContact>();
   for(Contact c : [select Id, Name, Email, Phone from Contact limit 10])
   {
     //As each contact is processed we create a new cContact object and add it to the contactList
     contactList.add(new cContact(c));
   }
  }
  return contactList;
 } 

 public PageReference processSelected()
 {
   //We create a new list of Contacts that we be populated only with Contacts if they are selected
   selectedContacts = new List<Contact>();

   //We will cycle through our list of cContacts and will check to see if the selected
   //property is set to true, if it is we add the Contact to the selectedContacts list


   for(cContact cCon : getContacts())
    {
      if(cCon.selected == true)
      {
       selectedContacts.add(cCon.con);
      }
    }
   value = selectedContacts.size();
   System.debug('printing listcontc'+selectedContacts.size());

   // Now we have our list of selected contacts and can perform any type of logic we want,
   // sending emails, updating a field on the Contact, etc

   return null;
 }
   
 //This is our wrapper/container class. A container class is a class,a data structure,or an
 //abstract data type whose instances are collections of other objects. In this example a
 //wrapper class contains both the standard salesforce object Contact and a Boolean value


 public class cContact
 {
  public Contact con {get; set;}
  public Boolean selected {get; set;}

  //This is the contructor method. When we create a new cContact object we pass a Contact
  //that is set to the con property. We also set the selected value to false

  public cContact(Contact c)
      {
            con = c;
            selected = false;
        }
    }
}

ScreenShot:



2 comments:


  1. When exploring different methods of printing on fabrics, many artists turn to innovative techniques to achieve unique results, such as DTF TRANSFERS. This method offers vibrant colors and durability, making it a popular choice among custom clothing designers. By utilizing DTF TRANSFERS, creators can efficiently produce high-quality images on various textiles, enhancing their artistic expression. Overall, embracing this technology can significantly elevate the quality of printed apparel in the industry.

    ReplyDelete