public with sharing class DescibeDemoController
{
public Map <String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
public String selectedObject {get; set;}
public List<FieldWrapper> listField{get;set;}
public DescibeDemoController()
{
listField = new List<FieldWrapper>();
}
// find all sObjects available in the organization
public List<SelectOption> getListObejectName()
{
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;
}
// Find the fields for the selected object
public void showFields()
{
listField.clear();
Map <String, Schema.SObjectField> fieldMap = schemaMap.get(selectedObject).getDescribe().fields.getMap();
for(Schema.SObjectField sfield : fieldMap.Values())
{
schema.describefieldresult dfield = sfield.getDescribe();
FieldWrapper wObj = new FieldWrapper();
wObj.fieldName = dfield.getLabel ();
wObj.fieldAPIName = dfield.getname();
listField.add(wObj);
}
}
public class FieldWrapper
{
public String fieldName {get; set;}
public String fieldAPIName {get; set;}
}
}
You can use describe calls for this:
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
List<SelectOption> lstSO = new List<SelectOption>();
for(String strName : gd.keyset())
{
lstSO.add(new SelectOption(strName,strName));
}
Bind this selectoption list with page.
<apex:selectList value="{!val}">
<apex:selectOptions value="{lstSO}"/>
</apex:selectList>
Please check the below sample code
VisualForce Page:
Controller:
Please refer the below link for more details.
http://sfdcsrini.blogspot.com/2014/11/dynamic-apex-in-salesforce.html
Hope this helps you!
Best Regards,
Jyothsna
Let us know if this will help you
Hi ....hari azmeera 8
VF Page Cde
<apex:page controller="RecordPicklist">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection >
<apex:pageBlockSectionItem >
<apex:outputLabel value="SObject List"/>
<apex:selectList size="1">
<apex:selectOptions value="{!objects}"/>
</apex:selectList>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Controller Code
public with sharing class RecordPicklist {
public List<SelectOption> objects { get; set; }
public List<String> objlst { get; set; }
public Map<String, Schema.SobjectType> mobjects { get; set; }
public RecordPicklist(){
objects = new List<SelectOption>();
objlst = new List<String>();
mobjects = Schema.getGlobalDescribe();
objlst.addAll(mobjects.keyset());
objlst.sort();
selectoption ip = new selectoption('None','---None---');
objects.add(ip);
for(String s:objlst){
selectoption op = new selectoption(s,s);
objects.add(op);
}
}
}
Enjoy.........