Site extenion class:
public with sharing class siteExtension {
private ApexPages.StandardController controller;
private Set<String> SiteFields = new Set<String>();
public siteExtension (ApexPages.StandardController controller) {
this.controller = controller;
Map<String, Schema.SobjectField> fields =
Schema.SobjectType.Site__c.fields.getMap();
for (String s : fields.keySet()) {
// Only include accessible fields
if (fields.get(s).getDescribe().isAccessible() &&
fields.get(s).getDescribe().isCustom()) {
SiteFields.add(s);
}
}
}
public List<String> availableFields {
get {
controller.reset();
controller.addFields(new List<String>(SiteFields));
return new List<String>(SiteFields);
}
}
}
VF Page:
<apex:pageBlock title="{!Site__c.Name}">
<apex:repeat value="{!availableFields}" var="field">
<h2><apex:outputText
value="{!$ObjectType['Site__c'].Fields[field].Label}"/></h2>
<br/>
<apex:outputText value="{!Site__c[field]}" /><br/><br/>
</apex:repeat>
</apex:pageBlock>
Why do I get this error:
SObject row was retrieved via SOQL without querying the requested field: Site__c.Home_Content_Body__c
I followed the tutorial from https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_dynamic_vf_sample_custom.htm