I´m trying to create an editable related list for Campaign Members, but can´t seem to reference a field (in my extension below) from the actual Campaign Member object (Description__c). I get a "No such column 'Description__c' on entity 'CampaignMember'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name" error within the Developer Console.
Which means it can´t be displayed in the visualforce page (the code "works", but instead of appearing as a table, it appears as an "SObject row was retrieved via SOQL without querying the requested field" error). Any ideas?
public with sharing class CampaignRelatedListExtension
{
public List<CampaignMember> campaignMembers { get; private set; }
public CampaignRelatedListExtension(ApexPages.StandardController controller)
{
campaignMembers = [
SELECT Campaign.Name, Campaign.Startdate, Campaign.Type, Description__c FROM CampaignMember
WHERE ContactId = :controller.getId()
];
}
}
And my vf page:
<apex:page standardController="Contact" extensions="CampaignRelatedListExtension">
<apex:form >
<apex:pageBlock title="Campaign Members">
<apex:pageBlockTable value="{!campaignMembers}" var="member">
<apex:column value="{!member.Campaign.Name}" />
<apex:column value="{!member.Campaign.Startdate}" />
<apex:column value="{!member.Campaign.Type}" />
<apex:column value="{!member.Description__c}" />
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>