function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Darryl SinghDarryl Singh 

Pageblocktable not executing get method when rendered - returning no rows. Help!

Hi Everyone,

 

This very simple VF page is not executing the getSiteEqp method when rendering the pageBlockTable.  I have verified that the SiteEqp list is properly loaded with 70 elements in the controller extension constructor, but it doesn't matter.  The system.debug statement is the first statement in the getSiteEqp method, but it is not logged in the execution log, so I think the getSiteEqp method is not even being executed.  Can anyone tell me why?  Here's the VF code:

 

<!-- Copyright Ebara International Corporation 2012 -->
<!-- Written by Darryl Singh -->
<apex:page standardController="Case" extensions="Assign_Case_Equip" >
<apex:form >
<apex:pageBlock id="SCE">
<h1 style="font-size:30px"><center>Assign Case Equipment</center></h1><br/>
<center>
<apex:commandButton value="Assign Selected" action="{!AssignSelected}" />
<apex:commandButton value="Assign All" action="{!AssignAll}" />
<apex:commandButton value="Cancel" action="{!Cancel}" />
</center>
<apex:pageMessages />
<apex:pageBlockTable value="{!SiteEqp}" var="SE" id="SEqp" columns="5" width="100%" >
<apex:column headerValue="Sel" style="width:98%" >
<apex:inputField value="{!SE.Selected__c}" style="width:98%" />
</apex:column>
<apex:column headerValue="Serial#" >
<apex:outputText value="{!SE.Name}" style="width:98%" />
</apex:column>
<apex:column headerValue="Model Number" >
<apex:outputText value="{!SE.Model_Number__c}" style="width:98%" />
</apex:column>
<apex:column headerValue="Position Number" >
<apex:outputText value="{!SE.Position_Number__c}" style="width:98%" />
</apex:column>
<apex:column headerValue="Part Number" >
<apex:outputText value="{!SE.Part_Number__c}" style="width:98%" />
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>

 

and the controller extension . . .

 

// Copyright Ebara International Corporation 2012
// Written by Darryl Singh
public with sharing class Assign_Case_Equip {

// Class field definitions:
public list<Case_Equipment__c> deleteCE {get; set;}
public list<Case_Equipment__c> insertCE {get; set;}
public list<Site_Equipment__c> SiteEqp {get; set;}
public map<Id, Case_Equipment__c> CaseEquipMap {get; set;}
public final Case c;

public Assign_Case_Equip(ApexPages.StandardController stdController) {
this.c = (Case)stdController.getRecord();
list<Site_Equipment__c> SiteEqp = new List<Site_Equipment__c>();
map<Id, Case_Equipment__c> CaseEquipMap = new map<Id, Case_Equipment__c>();
for (Site_Equipment__c SE : [ select Id, Selected__c, Name, Model_Number__c, Position_Number__c, Part_Number__c
from Site_Equipment__c a where Site__c in (select Site_Number__c from Case where Id = :c.Id)
order by Name ]) SiteEqp.add(SE);
for (Case_Equipment__c CE : [ select Id, Site_Equipment__r.Id from Case_Equipment__c a where Case__c = :c.ID ]) {
CaseEquipMap.put(ce.Site_Equipment__r.Id, ce);
}
}

public list<Site_Equipment__c> getSiteEqp() {
system.debug('SiteEqp Size = ' + string.ValueOf(SiteEqp.Size()));
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) SiteEqp[x].Selected__c = False; else SiteEqp[x].Selected__c = True;
}
return SiteEqp;
}

public pageReference assignSelected() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null & SiteEqp[x].Selected__c == True) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
if(ce <> null & SiteEqp[x].Selected__c == False) deleteCE.add(ce);
}
if(deleteCE.size() > 0) database.delete(deleteCE,false);
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference assignAll() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
}
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference Cancel() {
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}
}

Best Answer chosen by Admin (Salesforce Developers) 
jd123jd123

Hi

 

simple mistake 

 

you have written two times.

 

1.you can change the 2nd line method name in the calss and visualfore page

 

// Copyright Ebara International Corporation 2012
// Written by Darryl Singh
public with sharing class Assign_Case_Equip {

// Class field definitions:
public list<Case_Equipment__c> deleteCE {get; set;}
public list<Case_Equipment__c> insertCE {get; set;}
1.public list<Site_Equipment__c> SiteEqp {get; set;}
public map<Id, Case_Equipment__c> CaseEquipMap {get; set;}
public final Case c;

public Assign_Case_Equip(ApexPages.StandardController stdController) {
this.c = (Case)stdController.getRecord();
list<Site_Equipment__c> SiteEqp = new List<Site_Equipment__c>();
map<Id, Case_Equipment__c> CaseEquipMap = new map<Id, Case_Equipment__c>();
for (Site_Equipment__c SE : [ select Id, Selected__c, Name, Model_Number__c, Position_Number__c, Part_Number__c
from Site_Equipment__c a where Site__c in (select Site_Number__c from Case where Id = :c.Id)
order by Name ]) SiteEqp.add(SE);
for (Case_Equipment__c CE : [ select Id, Site_Equipment__r.Id from Case_Equipment__c a where Case__c = :c.ID ]) {
CaseEquipMap.put(ce.Site_Equipment__r.Id, ce);
}
}

2.public list<Site_Equipment__c> getSiteEqp() {
system.debug('SiteEqp Size = ' + string.ValueOf(SiteEqp.Size()));
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) SiteEqp[x].Selected__c = False; else SiteEqp[x].Selected__c = True;
}
return SiteEqp;
}

public pageReference assignSelected() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null & SiteEqp[x].Selected__c == True) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
if(ce <> null & SiteEqp[x].Selected__c == False) deleteCE.add(ce);
}
if(deleteCE.size() > 0) database.delete(deleteCE,false);
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference assignAll() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
}
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference Cancel() {
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}
}

 

if your question is resolved please mark it as accpet as a solution if not please let me know. 

All Answers

Darryl SinghDarryl Singh

One other comment - I removed the initial load of the SiteEqp list and CaseEquipMap from the constructor and put it directly into the getSiteEqp method, but this did not change the result.

jd123jd123

Hi

 

simple mistake 

 

you have written two times.

 

1.you can change the 2nd line method name in the calss and visualfore page

 

// Copyright Ebara International Corporation 2012
// Written by Darryl Singh
public with sharing class Assign_Case_Equip {

// Class field definitions:
public list<Case_Equipment__c> deleteCE {get; set;}
public list<Case_Equipment__c> insertCE {get; set;}
1.public list<Site_Equipment__c> SiteEqp {get; set;}
public map<Id, Case_Equipment__c> CaseEquipMap {get; set;}
public final Case c;

public Assign_Case_Equip(ApexPages.StandardController stdController) {
this.c = (Case)stdController.getRecord();
list<Site_Equipment__c> SiteEqp = new List<Site_Equipment__c>();
map<Id, Case_Equipment__c> CaseEquipMap = new map<Id, Case_Equipment__c>();
for (Site_Equipment__c SE : [ select Id, Selected__c, Name, Model_Number__c, Position_Number__c, Part_Number__c
from Site_Equipment__c a where Site__c in (select Site_Number__c from Case where Id = :c.Id)
order by Name ]) SiteEqp.add(SE);
for (Case_Equipment__c CE : [ select Id, Site_Equipment__r.Id from Case_Equipment__c a where Case__c = :c.ID ]) {
CaseEquipMap.put(ce.Site_Equipment__r.Id, ce);
}
}

2.public list<Site_Equipment__c> getSiteEqp() {
system.debug('SiteEqp Size = ' + string.ValueOf(SiteEqp.Size()));
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) SiteEqp[x].Selected__c = False; else SiteEqp[x].Selected__c = True;
}
return SiteEqp;
}

public pageReference assignSelected() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null & SiteEqp[x].Selected__c == True) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
if(ce <> null & SiteEqp[x].Selected__c == False) deleteCE.add(ce);
}
if(deleteCE.size() > 0) database.delete(deleteCE,false);
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference assignAll() {
list<Case_Equipment__c> deleteCE = new list<Case_Equipment__c>();
list<Case_Equipment__c> insertCE = new list<Case_Equipment__c>();
for(Integer x = 0; x < SiteEqp.size(); x++) {
Case_Equipment__c ce = CaseEquipMap.get(SiteEqp[x].Id);
if(ce == null) {
insertCE.add(new Case_Equipment__c(Site_Equipment__c = SiteEqp[x].Id, Case__c = c.Id));
}
}
if(insertCE.size() > 0) database.insert(insertCE,false);
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}

public pageReference Cancel() {
PageReference casePage = new ApexPages.StandardController(c).view();
return casePage;
}
}

 

if your question is resolved please mark it as accpet as a solution if not please let me know. 

This was selected as the best answer
Darryl SinghDarryl Singh

Ah yes!  Now I'm completely embarrassed - rookie mistake!  Thanks for your help.  Your suggestion worked great.

jd123jd123

Good Darryl, I am happy that my suggestion helped you.