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

I want to provide pagination in my VF page but am getting errror
Hi,
I want to provide pagination in my VF page but am getting errror;
Content cannot be displayed: MALFORMED_QUERY: CampaignMembers WHERE ContactId = :tmpVar1) FROM Campaign ^ERROR at Row:1:Column:83rule parseSingleWhere failed predicate: {c != null}?
VF Page;
<apex:page standardController="Contact" sidebar="false" recordSetVar="Contacts" extensions="CampaignRecords"> <script type="text/javascript"> var win; function openNewPage(contactID){ var win='/_ui/common/data/LookupPage?lkpr='+contactID+'&lktp=701&enableScopes=1&addToCampaign=1''&retURL='+campaignID; openIntegration(win, 'height=500,width=700,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1) //openIntegration(win, 'height=500,width=700,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1) //alert(contentId); // window.opener.location.reload(); return false; } // var previousOnload = window.onload; // window.onload = function() { if (previousOnload) { win.close(); } } </script> <apex:form > <!-- <apex:sectionHeader title="Campaign History" subtitle=""/> <apex:pageBlockSection >Campaign History</apex:pageBlockSection>--> <apex:pageBlock id="campaigns"> <apex:pageBlockButtons location="top"> <apex:commandButton value="Type All" reRender="TabRefresh" > <apex:param name="blTypeAll" assignTo="{!bltypeEmail}" value="TypeAll"/> </apex:commandButton> <apex:commandButton value="Type Email" reRender="TabRefresh" > <apex:param name="blEmail" assignTo="{!bltypeEmail}" value="Email"/> </apex:commandButton> <apex:commandButton value="Type Others" reRender="TabRefresh" > <apex:param name="bltypeEmail" assignTo="{!bltypeEmail}" value="typeOthers"/> </apex:commandButton> <apex:commandButton value="Add to Campaign" onclick="openNewPage('{!Id}')" > </apex:commandButton> </apex:pageBlockButtons> <apex:outputPanel id="TabRefresh"> <apex:pageBlockTable value="{!campgn}" var="o" rendered="{!NOT(ISNULL(campgn))}"> <apex:column value="{!o.Name}"/ > <apex:column value="{!o.Status}"/ > <apex:column value="{!o.Type}"/ > </apex:pageBlockTable> <apex:panelGrid columns="4"> <apex:commandButton action="{!first}" value="|>"/> <apex:commandButton rendered="{!HasPrevious}" action="{!Previous}" value="<"/> <apex:commandButton rendered="{HasNext}" action="{!next}" value=">"/> <apex:commandButton action="{last}" value=">|"/> </apex:panelGrid> </apex:outputPanel> </apex:pageBlock> </apex:form> </apex:page>
Controller Extn;
public with sharing class CampaignRecords {
public Contact objContact {get;set;}
public String bltypeEmail {get; set;}
public String currentContRecordId {get;set;}
private List<Campaign> campgn {get; set;}
private List<Campaign> campAll {get;set;}
public List<Campaign> typeEmailOthers {get; set;}
//public ApexPages.StandardSetController setCon {get; set;}
//Public Integer size{get;set;}
//Public Integer noOfRecords{get; set;}
public ApexPages.StandardSetController setCon {
get {
if(setCon == null) {
setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
[Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId = :currentContRecordId) from Campaign]));
//[Select Id, Name, Type, Status from Campaign]));
}
return setCon;
}
set;
}
public CampaignRecords(ApexPages.StandardSetController controller) {
controller.setPageSize(10);
currentContRecordId = ApexPages.CurrentPage().getparameters().get('id');
objContact= [select id,accountid from contact where id = :currentContRecordId] ;
system.debug('campaign record='+objContact.ID);
}
public List<Campaign> getCampgn(){
//List<Campaign> campgn = new List<Campaign>();
/* for(Campaign c : (List<Campaign>)setCon.getRecords())
campAll.add(c);*/
if(bltypeEmail == 'TypeAll' || bltypeEmail == null || bltypeEmail == '' || bltypeEmail == ' ') {
for(Campaign c : (List<Campaign>)setCon.getRecords())
//if(c.Type != 'Email')
campgn.add(c);
//campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId = :objContact.Id) from Campaign];
bltypeEmail ='';
}
/* else if(bltypeEmail == 'Email'){
campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId =:currentContRecordId) from Campaign where Type ='Email'];
bltypeEmail ='';
}
else if(bltypeEmail == 'typeOthers')
{
campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId =:currentContRecordId) from Campaign where Type !='Email'];
bltypeEmail ='';
}*/
system.debug('under type all'+campgn);
return campgn ;
}
public pageReference refresh() {
setCon = null;
getCampgn();
setCon.setPageNumber(1);
return null;
}
public Boolean hasNext {
get {
return setCon.getHasNext();
}
set;
}
public Boolean hasPrevious {
get {
return setCon.getHasPrevious();
}
set;
}
public Integer pageNumber {
get {
return setCon.getPageNumber();
}
set;
}
public void first() {
setCon.first();
}
public void last() {
setCon.last();
}
public void previous() {
setCon.previous();
}
public void next() {
setCon.next();
}
}
I want to provide pagination in my VF page but am getting errror;
Content cannot be displayed: MALFORMED_QUERY: CampaignMembers WHERE ContactId = :tmpVar1) FROM Campaign ^ERROR at Row:1:Column:83rule parseSingleWhere failed predicate: {c != null}?
VF Page;
<apex:page standardController="Contact" sidebar="false" recordSetVar="Contacts" extensions="CampaignRecords"> <script type="text/javascript"> var win; function openNewPage(contactID){ var win='/_ui/common/data/LookupPage?lkpr='+contactID+'&lktp=701&enableScopes=1&addToCampaign=1''&retURL='+campaignID; openIntegration(win, 'height=500,width=700,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1) //openIntegration(win, 'height=500,width=700,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1) //alert(contentId); // window.opener.location.reload(); return false; } // var previousOnload = window.onload; // window.onload = function() { if (previousOnload) { win.close(); } } </script> <apex:form > <!-- <apex:sectionHeader title="Campaign History" subtitle=""/> <apex:pageBlockSection >Campaign History</apex:pageBlockSection>--> <apex:pageBlock id="campaigns"> <apex:pageBlockButtons location="top"> <apex:commandButton value="Type All" reRender="TabRefresh" > <apex:param name="blTypeAll" assignTo="{!bltypeEmail}" value="TypeAll"/> </apex:commandButton> <apex:commandButton value="Type Email" reRender="TabRefresh" > <apex:param name="blEmail" assignTo="{!bltypeEmail}" value="Email"/> </apex:commandButton> <apex:commandButton value="Type Others" reRender="TabRefresh" > <apex:param name="bltypeEmail" assignTo="{!bltypeEmail}" value="typeOthers"/> </apex:commandButton> <apex:commandButton value="Add to Campaign" onclick="openNewPage('{!Id}')" > </apex:commandButton> </apex:pageBlockButtons> <apex:outputPanel id="TabRefresh"> <apex:pageBlockTable value="{!campgn}" var="o" rendered="{!NOT(ISNULL(campgn))}"> <apex:column value="{!o.Name}"/ > <apex:column value="{!o.Status}"/ > <apex:column value="{!o.Type}"/ > </apex:pageBlockTable> <apex:panelGrid columns="4"> <apex:commandButton action="{!first}" value="|>"/> <apex:commandButton rendered="{!HasPrevious}" action="{!Previous}" value="<"/> <apex:commandButton rendered="{HasNext}" action="{!next}" value=">"/> <apex:commandButton action="{last}" value=">|"/> </apex:panelGrid> </apex:outputPanel> </apex:pageBlock> </apex:form> </apex:page>
Controller Extn;
public with sharing class CampaignRecords {
public Contact objContact {get;set;}
public String bltypeEmail {get; set;}
public String currentContRecordId {get;set;}
private List<Campaign> campgn {get; set;}
private List<Campaign> campAll {get;set;}
public List<Campaign> typeEmailOthers {get; set;}
//public ApexPages.StandardSetController setCon {get; set;}
//Public Integer size{get;set;}
//Public Integer noOfRecords{get; set;}
public ApexPages.StandardSetController setCon {
get {
if(setCon == null) {
setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
[Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId = :currentContRecordId) from Campaign]));
//[Select Id, Name, Type, Status from Campaign]));
}
return setCon;
}
set;
}
public CampaignRecords(ApexPages.StandardSetController controller) {
controller.setPageSize(10);
currentContRecordId = ApexPages.CurrentPage().getparameters().get('id');
objContact= [select id,accountid from contact where id = :currentContRecordId] ;
system.debug('campaign record='+objContact.ID);
}
public List<Campaign> getCampgn(){
//List<Campaign> campgn = new List<Campaign>();
/* for(Campaign c : (List<Campaign>)setCon.getRecords())
campAll.add(c);*/
if(bltypeEmail == 'TypeAll' || bltypeEmail == null || bltypeEmail == '' || bltypeEmail == ' ') {
for(Campaign c : (List<Campaign>)setCon.getRecords())
//if(c.Type != 'Email')
campgn.add(c);
//campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId = :objContact.Id) from Campaign];
bltypeEmail ='';
}
/* else if(bltypeEmail == 'Email'){
campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId =:currentContRecordId) from Campaign where Type ='Email'];
bltypeEmail ='';
}
else if(bltypeEmail == 'typeOthers')
{
campgn = [Select Id, Name, Type, Status,(select name from CampaignMembers where ContactId =:currentContRecordId) from Campaign where Type !='Email'];
bltypeEmail ='';
}*/
system.debug('under type all'+campgn);
return campgn ;
}
public pageReference refresh() {
setCon = null;
getCampgn();
setCon.setPageNumber(1);
return null;
}
public Boolean hasNext {
get {
return setCon.getHasNext();
}
set;
}
public Boolean hasPrevious {
get {
return setCon.getHasPrevious();
}
set;
}
public Integer pageNumber {
get {
return setCon.getPageNumber();
}
set;
}
public void first() {
setCon.first();
}
public void last() {
setCon.last();
}
public void previous() {
setCon.previous();
}
public void next() {
setCon.next();
}
}
http://amitsalesforce.blogspot.in/search/label/Pagination
Pass your query like below code
query = 'Select name ,id, phone from Account '+strFilter+ ' limit 1000';
System.debug('Query ---->'+ query );
con = new ApexPages.StandardSetController(Database.getQueryLocator(query));
con.setPageSize(2);