Monday, March 17, 2014

Dynamic Columns in visualforce using Fieldset


Dynamically bind your columns in visual force page block table
All you need is
1- Fieldset on any salesforce standard or Custom Object
2- Apex Class(Controller)
3- Visualforce Page.

1- Fieldset- fieldset is used to dynamically bind the fields in the visualforce page or in apex class. For this first you need to create a field set like --
  1.a- Go to Setup->Customize->Account->FieldSet->New
  1.b- write the Name Account_Fields
  1.c- Now you will get a view like page layout. So you need to drag some field to the Field set Section like you do in Page Layouts.
  1.d- your field set is now created.

2- create an apex class with following code:-

public class AccountFieldSetData {

public list<AggregateResult>lstAccount {get;set;}
public AccountFieldSetData() { 
 String SOQL = ''; 
 SOQL = 'SELECT '; 
 for(Schema.FieldSetMember thisField : this.getFields()) { 
 SOQL += thisField.getFieldPath() + ', '; 
 } 
 SOQL += ' Id from Account limit 50'; 
 lstAccount = database.query(SOQL); 
 } 
 private List<AggregateResult>getFields() {
 return SobjectType.Account.FieldSets.Account_Fields.getFields(); 
 } 
 }

3- Create a visualforce page with following code---


<apex:page controller="Demo_DynamicColumnsInPBTable">
  <apex:sectionHeader title="Dynamic Columns in PageBlock Table"/>
  <apex:form >
      <apex:pageBlock >
          <apex:pageblockTable value="{!lstAccount}" var="account" >
                <apex:repeat value="{! $ObjectType.Account.Fieldsets.Account_Fields}" var="varFieldName">
                    <apex:column value="{! account[varFieldName]}"/>
                </apex:repeat>
            </apex:pageblockTable>
      </apex:pageBlock>
  </apex:form>
</apex:page>


1 comment :

Labels

visualforce page ( 13 ) apex integration ( 5 ) apex trigger ( 4 ) csv file from vf page ( 4 ) javascript ( 4 ) csv visualforce page ( 3 ) Too many ( 2 ) call out ( 2 ) integration ( 2 ) rest api ( 2 ) salesforce rest api ( 2 ) salesforce to salesforce integration ( 2 ) sfdc rest api ( 2 ) trigger ( 2 ) 15 digit to 18 digit ( 1 ) DML rows in Apex ( 1 ) Date Conversion ( 1 ) Date/Time conversion ( 1 ) Deploy ( 1 ) Objects to Future Annotated Methods ( 1 ) SFDC limits ( 1 ) Sobject to Future Annotated Methods ( 1 ) Test Class ( 1 ) TimeZone Conversion ( 1 ) Too many dml rows ( 1 ) Too many future calls ( 1 ) annotations ( 1 ) apex code ( 1 ) closed opportunities ( 1 ) commit ( 1 ) convert ( 1 ) create records ( 1 ) csv create records ( 1 ) custom setting ( 1 ) deployment ( 1 ) deployment changeset ( 1 ) disable apex class ( 1 ) disable apex trigger ( 1 ) disable in production ( 1 ) document ( 1 ) download ( 1 ) field name ( 1 ) formula fields ( 1 ) iframe ( 1 ) inactive ( 1 ) intellisense ( 1 ) jsforce ( 1 ) limits ( 1 ) matrix report in vf page ( 1 ) multi select ( 1 ) multi select salesforce ( 1 ) multiselect ( 1 ) paypal ( 1 ) picklist ( 1 ) record type ( 1 ) rollback ( 1 ) salesforce limits ( 1 ) salesforce list ( 1 ) salesforce map ( 1 ) salesforce rest ( 1 ) salesforce set ( 1 ) salesforce1 ( 1 ) sandbox deployment ( 1 ) sfdc collection ( 1 ) sfdc list ( 1 ) sfdc map ( 1 ) sfdc rest ( 1 ) sfdc set ( 1 ) uncommitted ( 1 ) updated field ( 1 ) user ( 1 ) validation rule opportunity ( 1 ) validation rules opportunities ( 1 ) vf page ( 1 )

Ad