Tasty pizza baked in my small oven...
Friends... here is how we can bind sObject fields dynamically present in a specific fieldset...The controller code looks as given below
--------------------------------------------------------------------------------
public class FieldsetController {
public FieldsetController(ApexPages.StandardController controller) {
fsMember = new List<Schema.FieldSetMember>();
formON = false;
}
public String str{get;set;}
public Account acc{get;set;}
public Boolean formON {get;set;}
public Schema.FieldSet field{get;set;}
//public Map<String, Schema.FieldSet> FsMap {get;set;}
public List<Schema.FieldSetMember> fsMember {get;set;}
public void displayFieldset() {
try{
if( str != '' && str != 'none' && str != null ){
Schema.DescribeSObjectResult d = Account.sObjectType.getDescribe();
Map<String, Schema.FieldSet> FsMap = d.fieldSets.getMap();
System.debug('---------Fieldsets'+FsMap);
Schema.FieldSet fs = FsMap.get(str);
System.debug('-----------Fieldset'+fs);
System.debug('test------'+fs.getFields());
fsMember = new List<Schema.FieldSetMember>();
for( Schema.FieldSetMember f : fs.getFields() ){
fsMember.add(f);
}
formON = true;
}else {
formON = false;
fsMember.clear();
fsMember = new List<Schema.FieldSetMember>();
}
System.debug('Final-----------------'+fsMember);
}catch(Exception ex){
System.debug('----------EXCEPTION HAS OCCURRED-------------'+ex.getMessage());
}
}
}
The VisualForce code is as given below.
--------------------------------------------------------------------
<apex:page standardcontroller="account" extensions="FieldsetController" tabStyle="Account">
<apex:pageBlock >
<apex:form id="formPickList">
<apex:pageBlockSection title="Please Select the Fieldset">
<apex:selectList label="Fieldsets" id="Picklist1" value="{!str}" size="1" >
<apex:selectOption itemValue="none" itemLabel="None"/>
<apex:selectOption itemValue="FieldSet" itemLabel="FieldSet"/>
<apex:selectOption itemValue="FieldSet1" itemLabel="FieldSet1"/>
<apex:selectOption itemValue="FieldSet2" itemLabel="FieldSet2"/>
<apex:actionSupport event="onchange" action="{!displayFieldset}" reRender="formContainer,pbsContainer"/>
</apex:selectList>
</apex:pageBlockSection>
</apex:form>
<apex:form id="formContainer" >
<apex:pageBlockSection id="pbsContainer" Title="Input the Account Details" rendered="{!formON}">
<apex:repeat value="{!fsMember}" var="f">
<apex:inputField value="{!Account[f]}" />
</apex:repeat>
</apex:pageBlockSection>
</apex:form>
</apex:pageBlock>
</apex:page>
--------------------------------------------------------------------------------------
Tasty.........!!! isn't it ??? :-)
But !!! What's next to get out of the oven ... ???
mmmmmm....
Yesss...! Exposing REST Webservice on force.com. Now it's available. Please click here
No comments:
Post a Comment