You need to sign in to do that
Don't have an account?
In my code when i select the last page its showing first page and after reaching last,the message
Here is my code
<apex:page controller="SearchRecords" showHeader="true" >
<apex:form id="frm">
<!----<apex:actionFunction name="showcon" action="{!showContact}" reRender="frm" /> --->
<apex:pageblock >
<apex:pageBlockSection title="Search Account Records" columns="1">
Enter Name<apex:inputText value="{!getstring}" id="theTextInput"/>
<apex:commandButton action="{!searchRecords}" value="Search" id="theSearch" reRender="frm"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="Account Detail" id="pb">
<apex:pageBlocktable value="{!accountlist}" var="acc">
<apex:column >
<input type="radio" name="group1" reRender="frm"/>
<apex:actionSupport event="onclick" action="{!showContact}" reRender="frm" >
<apex:param assignTo="{!AccId}" name="accname" value="{!acc.id}"/>
</apex:actionSupport>
</apex:column>
<apex:column value="{!acc.Name}" />
<apex:column value="{!acc.Phone}" />
</apex:pageBlocktable>
</apex:pageBlockSection>
<apex:pageBlockSection title="Related Contact" id="conpgblk" rendered="{!display}" >
<apex:outputPanel rendered="{!listWrapper.size == 0}">
<b> NO RELATED CONTACTS FOR THIS ACCOUNT.</b>
</apex:outputPanel>
<apex:outputPanel rendered="{!listWrapper.size != 0}">
<div align="center" draggable="false" >
<apex:commandButton value="Send Email" action="{!SendEmail}" />
<apex:commandButton value="Print Detail" action="{!PrintDetail}"/>
</div>
<apex:pageBlockTable value="{!listWrapper}" var="wrap">
<apex:column headerValue="Select">
<apex:inputCheckbox value="{!wrap.checked}" id="inputBox"/>
</apex:column>
<apex:column value="{!wrap.con.Name}"/>
<apex:column value="{!wrap.con.Phone}"/>
<apex:column value="{!wrap.con.Email}"/>
<apex:column value="{!wrap.con.Account.Name}"/>
<apex:column value="{!wrap.con.AccountId}"/>
<apex:column value="{!wrap.con.Id}"/>
</apex:pageBlockTable>
<apex:commandButton value="First Page" rerender="conpgblk" action="{!FirstPage}" disabled="{!prev}"/>
<apex:commandButton value="Previous" rerender="conpgblk" action="{!previous}" disabled="{!prev}"/>
<apex:commandButton value="Next" rerender="conpgblk" action="{!next}" disabled=""/>
<apex:commandButton value="Last Page" rerender="conpgblk" action="{!LastPage}" disabled=""/>
</apex:outputPanel>
</apex:pageBlockSection>
</apex:pageblock>
</apex:form>
</apex:page>
public class SearchRecords {
public boolean display{get;set;}
private integer totalRecs = 0;
private integer OffsetSize = 0;
private integer LimitSize=5;
public String AccId{get;set;}
public string getstring{get;set;}
public List<Account> accountlist {get;set;}
public list<Contact> conList{get;set;}
public void searchRecords(){
display=false;
accountlist= new list<Account>();
if(getstring!=null){
accountlist= Database.query('select id,AccountNumber,name,Phone from Account where name like \'%'+getstring+'%\'');
}
}
public List<WrapperClass> listWrapper {get;set;}
public void showContact()
{
display=true;
listWrapper = new List<WrapperClass>();
List<Contact> conlist = [SELECT id,Title,Fax,Birthdate,Name,Account.Name,Phone,Email FROM Contact WHERE AccountId=:AccId LIMIT :LimitSize OFFSET :OffsetSize ];
if(conlist.size()>0)
{
for(contact con:conlist)
{
listWrapper.add(new WrapperClass(con));
}
}
}
public class WrapperClass
{
public boolean fgjj;
public Boolean checked {get;set;}
public contact con {get;set;}
public WrapperClass(contact con)
{
this.con=con;
checked=false;
}
}
public pageReference SendEmail(){
return null;
}
public pageReference PrintDetail(){
return new pageReference('apex/PrintContactDetail');
}
public void FirstPage(){
OffsetSize = 0;
showContact();
}
public void previous(){
OffsetSize = OffsetSize - LimitSize;
showContact();
}
public void next(){
OffsetSize = OffsetSize + LimitSize;
System.debug('>>>>>OffsetSize '+OffsetSize);
showContact();
}
public void LastPage(){
OffsetSize = totalrecs - math.mod(totalRecs,LimitSize);
system.debug('====>OffsetSize'+OffsetSize);
showContact();
}
public boolean getprev(){
showContact();
if(OffsetSize == 0)
return true;
else
return false;
}
public boolean getnxt(){
showContact();
if((OffsetSize + LimitSize) > totalRecs)
return true;
else
return false;
}
}
<apex:page controller="SearchRecords" showHeader="true" >
<apex:form id="frm">
<!----<apex:actionFunction name="showcon" action="{!showContact}" reRender="frm" /> --->
<apex:pageblock >
<apex:pageBlockSection title="Search Account Records" columns="1">
Enter Name<apex:inputText value="{!getstring}" id="theTextInput"/>
<apex:commandButton action="{!searchRecords}" value="Search" id="theSearch" reRender="frm"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="Account Detail" id="pb">
<apex:pageBlocktable value="{!accountlist}" var="acc">
<apex:column >
<input type="radio" name="group1" reRender="frm"/>
<apex:actionSupport event="onclick" action="{!showContact}" reRender="frm" >
<apex:param assignTo="{!AccId}" name="accname" value="{!acc.id}"/>
</apex:actionSupport>
</apex:column>
<apex:column value="{!acc.Name}" />
<apex:column value="{!acc.Phone}" />
</apex:pageBlocktable>
</apex:pageBlockSection>
<apex:pageBlockSection title="Related Contact" id="conpgblk" rendered="{!display}" >
<apex:outputPanel rendered="{!listWrapper.size == 0}">
<b> NO RELATED CONTACTS FOR THIS ACCOUNT.</b>
</apex:outputPanel>
<apex:outputPanel rendered="{!listWrapper.size != 0}">
<div align="center" draggable="false" >
<apex:commandButton value="Send Email" action="{!SendEmail}" />
<apex:commandButton value="Print Detail" action="{!PrintDetail}"/>
</div>
<apex:pageBlockTable value="{!listWrapper}" var="wrap">
<apex:column headerValue="Select">
<apex:inputCheckbox value="{!wrap.checked}" id="inputBox"/>
</apex:column>
<apex:column value="{!wrap.con.Name}"/>
<apex:column value="{!wrap.con.Phone}"/>
<apex:column value="{!wrap.con.Email}"/>
<apex:column value="{!wrap.con.Account.Name}"/>
<apex:column value="{!wrap.con.AccountId}"/>
<apex:column value="{!wrap.con.Id}"/>
</apex:pageBlockTable>
<apex:commandButton value="First Page" rerender="conpgblk" action="{!FirstPage}" disabled="{!prev}"/>
<apex:commandButton value="Previous" rerender="conpgblk" action="{!previous}" disabled="{!prev}"/>
<apex:commandButton value="Next" rerender="conpgblk" action="{!next}" disabled=""/>
<apex:commandButton value="Last Page" rerender="conpgblk" action="{!LastPage}" disabled=""/>
</apex:outputPanel>
</apex:pageBlockSection>
</apex:pageblock>
</apex:form>
</apex:page>
public class SearchRecords {
public boolean display{get;set;}
private integer totalRecs = 0;
private integer OffsetSize = 0;
private integer LimitSize=5;
public String AccId{get;set;}
public string getstring{get;set;}
public List<Account> accountlist {get;set;}
public list<Contact> conList{get;set;}
public void searchRecords(){
display=false;
accountlist= new list<Account>();
if(getstring!=null){
accountlist= Database.query('select id,AccountNumber,name,Phone from Account where name like \'%'+getstring+'%\'');
}
}
public List<WrapperClass> listWrapper {get;set;}
public void showContact()
{
display=true;
listWrapper = new List<WrapperClass>();
List<Contact> conlist = [SELECT id,Title,Fax,Birthdate,Name,Account.Name,Phone,Email FROM Contact WHERE AccountId=:AccId LIMIT :LimitSize OFFSET :OffsetSize ];
if(conlist.size()>0)
{
for(contact con:conlist)
{
listWrapper.add(new WrapperClass(con));
}
}
}
public class WrapperClass
{
public boolean fgjj;
public Boolean checked {get;set;}
public contact con {get;set;}
public WrapperClass(contact con)
{
this.con=con;
checked=false;
}
}
public pageReference SendEmail(){
return null;
}
public pageReference PrintDetail(){
return new pageReference('apex/PrintContactDetail');
}
public void FirstPage(){
OffsetSize = 0;
showContact();
}
public void previous(){
OffsetSize = OffsetSize - LimitSize;
showContact();
}
public void next(){
OffsetSize = OffsetSize + LimitSize;
System.debug('>>>>>OffsetSize '+OffsetSize);
showContact();
}
public void LastPage(){
OffsetSize = totalrecs - math.mod(totalRecs,LimitSize);
system.debug('====>OffsetSize'+OffsetSize);
showContact();
}
public boolean getprev(){
showContact();
if(OffsetSize == 0)
return true;
else
return false;
}
public boolean getnxt(){
showContact();
if((OffsetSize + LimitSize) > totalRecs)
return true;
else
return false;
}
}
You forgot to set the value of totalRecs in the showContact method. See updated class below.
Thanks
Do mark your question as resolved if my answer helped. Thanks!