0

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> 
5
  • 1
    You should edit your post to add your markup as well. Commented Nov 18, 2016 at 14:36
  • I can copy-paste this code and markup verbatim and get no such error. Commented Nov 18, 2016 at 14:48
  • @AdrianLarson, so adding in a Campaign Member field (to the extension) like that works for you? Commented Nov 18, 2016 at 14:58
  • 2
    Yes, I simply copied what you have into my org and added that field. It compiled and ran without error. Commented Nov 18, 2016 at 15:00
  • 1
    I also tested it and it works when added to the Contact's page. Tried to remove field-level security for a profile in that field, but it just does not display that column, no errors. Commented Nov 18, 2016 at 15:19

1 Answer 1

0

As it turns out, there was no problem with my code. The problem was that I hadn´t refreshed my sandbox; the Description__c field (which I created recently) wasn´t recognized as a field belonging to the Campaign Member object, because as far as the sandbox knew, it didn´t even exist.

Thanks for your help, @Adrian Larson and @Mauricio Oliveira.

2
  • You can mark this as the answer. Commented Nov 18, 2016 at 16:55
  • 1
    @citizenconn, I would, but it says that I have to wait for two days. Commented Nov 18, 2016 at 17:04

You must log in to answer this question.