I have solution for your problem, which is using salesforce schema and describe methods. See how nice salesforce is handling all these metadata information!!!.
Below is the attched Visualforce Markup and Apex code.
Thanks for your reply nagendra but i dont need child ralated feilds i need records list for example if i select the account object it should display all the account records
I have solution for your problem, which is using salesforce schema and describe methods.
See how nice salesforce is handling all these metadata information!!!.
Below is the attched Visualforce Markup and Apex code. Hope this helps.
Kindly mark this as solved if the reply was helpful so that it gets removed from the unanswered queue.
Thanks,
Nagendra
for example if i select the account object it should display all the account records
i appreciate if you could help me
please refer the below code, hope it will help you.
//VF Page:-
<apex:page controller="objectController">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection columns="2">
<apex:pageBlockSectionItem >
<apex:outputlabel value="Object Names :"/>
<apex:actionRegion >
<apex:selectList value="{!selectedObject}" size="1">
<apex:selectOptions value="{!ObjectNames}"/>
<apex:actionSupport event="onchange" rerender="myFields"/>
</apex:selectList>
</apex:actionRegion>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputlabel value="Field Names :"/>
<apex:outputPanel id="myFields">
<apex:actionRegion >
<apex:selectList value="{!selectedField}" size="1">
<apex:selectOptions value="{!ObjectFields}"/>
</apex:selectList>
</apex:actionRegion>
</apex:outputPanel>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
//Controller:-
public class objectController
{
public Map <String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
public String selectedObject {get; set;}
public String selectedField {get; set;}
Public objectController()
{
selectedObject = 'account';
}
public List<SelectOption> getObjectNames()
{
List<SelectOption> objNames = new List<SelectOption>();
List<String> entities = new List<String>(schemaMap.keySet());
entities.sort();
for(String name : entities)
{
objNames.add(new SelectOption(name,name));
}
return objNames;
}
public List<SelectOption> getObjectFields()
{
Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
Schema.SObjectType ObjectSchema = schemaMap.get(selectedObject);
Map<String, Schema.SObjectField> fieldMap =
ObjectSchema.getDescribe().fields.getMap();
List<SelectOption> fieldNames = new List<SelectOption>();
for (String fieldName: fieldMap.keySet())
{
fieldNames.add(new SelectOption(fieldName,fieldName));
//fieldMap.get(fieldName).getDescribe().getLabel();//It provides to get the object fields label.
}
return fieldNames;
}
}
please mark it as the best answer if it help you.
Thank You,
Ajay Dubedi