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
CoderCoder 

Not able to display the values in Datatable

Hi,

 

I jus copied this code from force.com wiki tutorials, and when i click on the Process Selected it has to show the selected records in seperate table, but its not showing anyselected records, when i click on a button nothing is happening. Please check this code...

 

Apex Code.

public class wrapperClassController { //Our collection of the class/wrapper objects cContact public List<cContact> contactList {get; set;} //This method uses a simple SOQL query to return a List of Contacts 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*/ List<Contact> 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); } } /* 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 */ System.debug('These are the selected Contacts...'); for(Contact con : selectedContacts){ system.debug(con); } 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; } } }

 

 

Visualforce Page Code:

 

 

 

<apex:page controller="wrapperClassController"> <apex:form > <apex:pageBlock > <apex:pageBlockButtons > <apex:commandButton value="Process Selected" action="{!processSelected}" rerender="table"/> </apex:pageBlockButtons> <!-- In our table we are displaying the cContact records --> <apex:pageBlockTable value="{!contacts}" var="c" id="table"> <apex:column > <!-- This is our selected Boolean property in our wrapper class --> <apex:inputCheckbox value="{!c.selected}"/> </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:form> </apex:page>

 

 Thank u.

 

 

Best Answer chosen by Admin (Salesforce Developers) 
bob_buzzardbob_buzzard
Store the selected contacts list in your controller, and create another datatable backed by that list.  The add the id of the new datatable to your re-render attribute.

All Answers

bob_buzzardbob_buzzard
There is nothing in your page to display the selected list.  There is a single pageblocktable that is backed by the original contacts list.  The processcontacts action method simply builds a list of selected contacts that it outputs to the debug log and then discards.
CoderCoder

Hi thanks for ur reply.

 

I want to display the selected records in a table how can i display it.

bob_buzzardbob_buzzard
Store the selected contacts list in your controller, and create another datatable backed by that list.  The add the id of the new datatable to your re-render attribute.
This was selected as the best answer