You need to sign in to do that
Don't have an account?

Help with Controller extension
Hello,
My Controller extension is supposed to query some records, but it is not working- the visualforce page is not displaying any records when the query should be returning. Is there an issue with this controller?
Here is the page:
<apex:page standardController="Discharge__c" extensions="CbosOldListExtension" lightningStylesheets="true">
<apex:pageBlock title="Referrals/CBO History">
<apex:pageBlockTable value="{!listofCbos}" var="cbolist">
<apex:column >
<apex:facet name="header">Referral Date</apex:facet>
<apex:outputText value="{!cbolist.referral_date__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">CBO Type</apex:facet>
<apex:outputText value="{!cbolist.cbo_type__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">CBO Name</apex:facet>
<apex:outputText value="{!cbolist.cbo_name__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Referral Status</apex:facet>
<apex:outputText value="{!cbolist.referral_status__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Rejection/Cancellation Reason</apex:facet>
<apex:outputText value="{!cbolist.rejection_cancellation_reason__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Start of Service</apex:facet>
<apex:outputText value="{!cbolist.start_of_service__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">End of Service</apex:facet>
<apex:outputText value="{!cbolist.end_of_service__c}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
And the Controller:
public with sharing class CbosOldListExtension {
private final Discharge__c dis;
Public List<Cbo__c> listofCbos {get; set;}
Public CbosOldListExtension(ApexPages.StandardController stdController){
this.dis = (Discharge__c)stdController.getRecord();
try{
Id myDischargeId = [Select Id, Name, Date_of_Birth__c from Discharge__c where Id = :this.dis.id].Id;
String myDischargeName = [Select Name from Discharge__c where Name = :this.dis.name].name;
//Date myDischargeDOB = [Select Id, Name, Date_of_Birth__c from Discharge__c where Name = :this.dis.id].Date_of_Birth__c;
string myDischargeSSN = [Select Id, Name, ssn__c from Discharge__c where ssn__c = :this.dis.id].ssn__c;
listofCbos = [SELECT Discharge_name__c, cbo_type__c, cbo_name__c, referral_date__c, referral_status__c,
rejection_cancellation_reason__c, start_of_service__c, end_of_service__c
FROM CBO__c
WHERE discharge_name__r.name = :myDischargeName];
// and discharge_name__r.ssn__c = :myDischargeSSN];
}
catch(exception e){
Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, 'No old records'));
}
}
}
My Controller extension is supposed to query some records, but it is not working- the visualforce page is not displaying any records when the query should be returning. Is there an issue with this controller?
Here is the page:
<apex:page standardController="Discharge__c" extensions="CbosOldListExtension" lightningStylesheets="true">
<apex:pageBlock title="Referrals/CBO History">
<apex:pageBlockTable value="{!listofCbos}" var="cbolist">
<apex:column >
<apex:facet name="header">Referral Date</apex:facet>
<apex:outputText value="{!cbolist.referral_date__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">CBO Type</apex:facet>
<apex:outputText value="{!cbolist.cbo_type__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">CBO Name</apex:facet>
<apex:outputText value="{!cbolist.cbo_name__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Referral Status</apex:facet>
<apex:outputText value="{!cbolist.referral_status__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Rejection/Cancellation Reason</apex:facet>
<apex:outputText value="{!cbolist.rejection_cancellation_reason__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">Start of Service</apex:facet>
<apex:outputText value="{!cbolist.start_of_service__c}"/>
</apex:column>
<apex:column >
<apex:facet name="header">End of Service</apex:facet>
<apex:outputText value="{!cbolist.end_of_service__c}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
And the Controller:
public with sharing class CbosOldListExtension {
private final Discharge__c dis;
Public List<Cbo__c> listofCbos {get; set;}
Public CbosOldListExtension(ApexPages.StandardController stdController){
this.dis = (Discharge__c)stdController.getRecord();
try{
Id myDischargeId = [Select Id, Name, Date_of_Birth__c from Discharge__c where Id = :this.dis.id].Id;
String myDischargeName = [Select Name from Discharge__c where Name = :this.dis.name].name;
//Date myDischargeDOB = [Select Id, Name, Date_of_Birth__c from Discharge__c where Name = :this.dis.id].Date_of_Birth__c;
string myDischargeSSN = [Select Id, Name, ssn__c from Discharge__c where ssn__c = :this.dis.id].ssn__c;
listofCbos = [SELECT Discharge_name__c, cbo_type__c, cbo_name__c, referral_date__c, referral_status__c,
rejection_cancellation_reason__c, start_of_service__c, end_of_service__c
FROM CBO__c
WHERE discharge_name__r.name = :myDischargeName];
// and discharge_name__r.ssn__c = :myDischargeSSN];
}
catch(exception e){
Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, 'No old records'));
}
}
}
Try quering the field this.dis.name separately after this.dis = (Discharge__c)stdController.getRecord(); statement.
Getrecord() will not fetch inner entities.
Please mark as best if it works.
Thanks.