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
Dhananjaya BulugahamulleDhananjaya Bulugahamulle 

How to put Page# of Total Page# in VF?

User-added image
How do I add Page# of Total Page# in VF custom page? I only able to get Page#, I could not get the other part ( Of Total Page). Any Idea. Thanks 
 
<apex:panelGrid columns="9">
                <div id="panel">
                    <apex:commandLink action="{!first}">First</apex:commandlink>
                    <apex:commandLink action="{!previous}" rendered="{!hasPrevious}">Previous</apex:commandlink>
                    <apex:commandLink action="{!next}" rendered="{!hasNext}">Next</apex:commandlink>
                    <apex:commandLink action="{!last}">Last</apex:commandlink> 
                    <apex:outputText value="Page #{!pageNumber}"/>
                    <b>Record :</b>
                    <apex:outputText rendered="{!(setpb.pageNumber * setpb.pageSize) < setpb.ResultSize}" value="{!setpb.pageNumber * setpb.pageSize} OF {!setpb.ResultSize}"></apex:outputText>
                    <apex:outputText rendered="{!(setpb.pageNumber * setpb.pageSize) >= setpb.ResultSize}" value="{!setpb.ResultSize} OF {!setpb.ResultSize}"></apex:outputText>
                  
                </div>
            </apex:panelGrid>
Extension 
 
public class DispatcherContactNewController {

    public DispatcherContactNewController(ApexPages.StandardController controller) {
        this.controller = controller;
    }

    private integer offset; // Keeps track of the offset     
    private integer pageSize;   // Page size or number of rows           
    public integer totalRecords;  // Total number of records  
    
    public ApexPages.StandardSetController setpb{
        get{
            if(setpb == null){
                setpb = new ApexPages.StandardSetController(Database.getQueryLocator(
                    [SELECT Id, Name, RecordTypeId, Createddate FROM Product_Brief__c ORDER BY Createddate DESC ]));
                         setpb.setPageSize(10);
                         }
                         return setpb;
           } 
        set;
        
    }
    
    public List<Product_Brief__c>getpbs(){
        return (List<Product_Brief__c>)setpb.getrecords();
    }
    
    public Boolean hasNext {
        get {
            return setpb.getHasNext();
            }
        set;
    }
    
    public Boolean hasPrevious {
        get {
            return setpb.getHasPrevious();
            }
        set;
    }
    
    public Integer pageNumber {
        get {
            return setpb.getPageNumber();
            }
        set;
    }
    
    public void first() {
         setpb.first();
    }
     
    public void last() {
         setpb.last();
    }

    // returns the previous page of records
    public void previous() {
        setpb.previous();
    }

    // returns the next page of records
    public void next() {
        setpb.next();
    }
}




 
Jason BealJason Beal
The StandardSetController has a method named getResultSize() that returns the number of records in the set. After you create your StandardSetController on line 14 of your controller you can store your total.
totalRecords = setpb.getResultSize();
Luiz PrandiniLuiz Prandini
Hope this help
https://help.salesforce.com/apex/HTViewSolution?id=000003705&language=en_US

 
Jason BealJason Beal
Were you able to get your total pages diaplayed? You'll want to take your totalRecords and divide it by your pageSize.
 
totalRecords = setpb.getResultSize();
totalPages = Math.ceil(totalRecords / pageSize);

 
Dhananjaya BulugahamulleDhananjaya Bulugahamulle
@ Jason Beal Thanks for the help but it gives me a error called unexpected token: '=' you why is that? 
Jason BealJason Beal
It just means the totalPages variable has not been defined. Either define it near the top of you class where you define the other variables such as totalRecords or define it inline as I list below. Also there were problems with incompatable data types so I added casting of the numbers. 
 
totalRecords = setpb.getResultSize();
Integer totalPages = (Integer)Math.ceil((Decimal)totalRecords / pageSize);

 
Jason BealJason Beal
Did that change work? Are you seeing any more error messages?
Dhananjaya BulugahamulleDhananjaya Bulugahamulle

@ Jason Beal , Now it will break my page. i attached some code. Thanks 
 
public class DispatcherContactNewController {

    public DispatcherContactNewController(ApexPages.StandardController controller) {
        this.controller = controller;
    }

    private integer offset; // Keeps track of the offset     
    private integer pageSize; // Page size or number of rows           
    public integer totalRecords; // Total number of records  
    
    public ApexPages.StandardSetController setpb{
        get{
            if(setpb == null){
               
                setpb = new ApexPages.StandardSetController(Database.getQueryLocator(
                    [SELECT Id, Name, RecordTypeId, Createddate FROM Product_Brief__c ORDER BY Createddate DESC ]));
                         setpb.setPageSize(10);
                         totalRecords = setpb.getResultSize();
                         
                         }
                         return setpb;
           } 
        set;
    }
    
    public List<Product_Brief__c>getpbs(){
        return (List<Product_Brief__c>)setpb.getrecords();
    }

      public integer gettotalPages (){
        return totalRecords / pageSize ;
    }
        
    public Boolean hasNext {
        get {
            return setpb.getHasNext();
            }
        set;
    }
    
    public Boolean hasPrevious {
        get {
            return setpb.getHasPrevious();
            }
        set;
    }
    
    public Integer pageNumber {
        get {
            return setpb.getPageNumber();
            }
        set;
    }
     
     public void first() {
         setpb.first();
    }
     
    public void last() {
         setpb.last();
    }

    // returns the previous page of records
    public void previous() {
        setpb.previous();
    }

    // returns the next page of records
    public void next() {
        setpb.next();
    }


 
Dhananjaya BulugahamulleDhananjaya Bulugahamulle
VF page

<apex:outputText value="{!totalPages }"></apex:outputText>