
Please try below code for custom object with custom field
public with sharing class ExtractSobject
{
public String Sf{get;set;}
public String Selectedobject { get; set; }
public List<SelectOption> getSelectedobjnames()
{
List<Schema.SObjectType> obj = Schema.getGlobalDescribe().Values();
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('--Select Object--','--Select Object--'));
for(Schema.SObjectType st : obj)
{
if(Selectedobject == null || Selectedobject=='' )
{
Selectedobject = st.getDescribe().getName();
}
options.add(new SelectOption(st.getDescribe().getName(),st.getDescribe().getName()));
}
return options;
}
public List<SelectOption> getSelectedobjFields()
{
SObjectType objTyp = Schema.getGlobalDescribe().get(Selectedobject);
DescribeSObjectResult objDef = objTyp.getDescribe();
Map<String, SObjectField> fields = objDef.fields.getMap();
Set<String> fieldSet = fields.keySet();
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('--Select Object--','--Select Object--'));
for(String s:fieldSet)
{
SObjectField Sobjfields = fields.get(s);
DescribeFieldResult selectedField = Sobjfields.getDescribe();
options.add(new SelectOption(selectedField.getName(),selectedField.getName()));
}
return options;
}
}
Please let us know if this will help uThanksAmit Chaudhary<apex:page controller="ExtractSobject">
<apex:form >
<apex:pageblock >
<apex:pageblocksection >
<apex:pageBlockSectionItem >
<apex:outputlabel value="Select Object"/>
<apex:selectList value="{!Selectedobject }" size="1">
<apex:selectoptions value="{!Selectedobjnames}"></apex:selectoptions>
<apex:actionSupport event="onchange" rerender="a"/>
</apex:selectList>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputPanel id="a">
<apex:outputLabel value="Object Fields" ></apex:outputLabel>
<apex:selectList value="{!Sf}" size="1">
<apex:selectOptions value="{!SelectedobjFields}" />
</apex:selectList>
</apex:outputPanel>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageblock>
</apex:form>
</apex:page>