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
HoysalaHoysala 

please someone do the pagination, i am trying but its not working.... I need to display 50 records per page... here goes my vf page and apex class

public with sharing class AccController
{

    

    public list <account> acc {get;set;} 
    public string searchstring {get;set;} 
    Public Boolean ShowCreateBlock{get;set;}
    public Boolean ShowBlock{get;set;}
    Public Boolean DisplaySearchResults{get;set;}
    public Account account{get;set;}
    Public Account NewAccountRecord{get;set;}
    
    
    
    public AccController()
    {
        ShowCreateBlock = false;
        ShowBlock=True;
        DisplaySearchResults = false;
        NewAccountRecord= New Account(Name='Test');
        
    }
    
    public String getAccount()
    {
        return null;
    }
    
    
    public String options { get; set; }
    
    public PageReference executeSearch() {
        return null;
    }
    public list<account> showList = new list<account>([select Name, Email__c,Phone from Account]);
    Public list<account> getshowList()
    {
        
        return showList;
    }
    
    
    public PageReference create()
    {
        return null;
    }
    
    public pagereference search()
    { 
        string searchquery='select name,id from account where name like \'%'+searchstring+'%\' Limit 20'; 
        acc= Database.query(searchquery);
        DisplaySearchResults =true;
        if(acc.size()==0)
        {
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'account not found'));
            ShowCreateBlock = true; 
            ShowBlock=False;
        }
        return null;
    }
    public void clear()
    { 
        acc.clear(); 
    } 
    Public pagereference saveRecord()
    {
        acc=[select id,email__c from Account];
        for(Account a : acc)
        {
            if(NewAccountRecord.Email__c==a.Email__C)
            {
                ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Email is already exist'));
                return null;
            }
        }
        if(ApexPages.hasMessages()==false)
            {
                insert NewAccountRecord;
                pagereference  pageRef = new pagereference('/'+NewAccountRecord.Id);
                return pageRef ; 
            } 
        return null; 
        }
         public List<SelectOption> getItems() {
            List<SelectOption> options = new List<SelectOption>();
            options.add(new SelectOption('10','10'));
            options.add(new SelectOption('20','20'));
            options.add(new SelectOption('30','30'));
              options.add(new SelectOption('40','40'));
            return options;
        }
    }
 
<apex:page Controller="AccController"  showHeader="true" tabStyle="account" >
    <apex:form > 
    <apex:pageMessages ></apex:pageMessages>
    <apex:pageblock title="New Account" id="CreateRecordBlock" Rendered="{!ShowCreateBlock}">
        <apex:pageblockSection >
       <apex:inputField value="{!NewAccountRecord.Name}"/>
            <apex:inputField value="{!NewAccountRecord.Phone}"/>  
            <apex:inputField value="{!NewAccountRecord.Email__c}"/>  
        </apex:pageblockSection>
        <apex:pageblockButtons >
        <apex:commandButton value="saveAccount" action="{!saveRecord}"/>
        </apex:pageblockButtons>
    </apex:pageblock>
    
    <apex:pageBlock id="SearchBlock" Rendered="{!ShowBlock}">
        <apex:inputText value="{!searchstring}" label="Input"/> 
        <apex:commandButton value="Search records" action="{!search}" /> 
        <apex:commandButton value="Clear records" action="{!clear}"/> 
       <!-- <apex:commandButton value="Create account" action="{!create}"/>-->
        <apex:pageBlock title="Search Result" id="resBlock" rendered="{!DisplaySearchResults}">
        <apex:actionSupport event="onchange" reRender="Account"/> 
        <apex:pageblockTable value="{!acc}" var="a"> 
        <apex:column value="{!a.name}"/> 
        <apex:column value="{!a.id}"/>
         </apex:pageBlockTable>
    </apex:pageBlock>
   
    
    <apex:pageBlock >
        <apex:inputField value="{!Account.Type}"/>
        <apex:pageBlockTable value="{!showList}" var="a">
         <apex:column headerValue="Account Name">
        <apex:outputLink value="/{!a.id}">{!a.name}</apex:outputLink>
        </apex:column>
        <apex:column headerValue="Account Phone" value="{!a.Phone}"/>
        <apex:column headerValue="Account Email" value="{!a.Email__c}"/>
        
        <apex:CommandButton action="{!executeSearch}" value="Search"/>
         
        <apex:selectList >
        <apex:selectOptions value="{!options}"/>
        </apex:selectList>
        </apex:pageBlockTable>
    </apex:pageBlock>
    
    
    </apex:pageBlock>
    </apex:form>
</apex:page>

 
Best Answer chosen by Hoysala
Khan AnasKhan Anas (Salesforce Developers) 
Hi Suraj,

Greetings to you!

Please try the below code. Kindly modify the code as per your requirement.

Visualforce:
<apex:page controller="AccController" showHeader="true" tabStyle="account" >
    <apex:form > 
        <apex:pageMessages ></apex:pageMessages>
        <apex:pageblock title="New Account" id="CreateRecordBlock" Rendered="{!ShowCreateBlock}">
            <apex:pageblockSection >
                <apex:inputField value="{!NewAccountRecord.Name}"/>
                <apex:inputField value="{!NewAccountRecord.Phone}"/>  
                <apex:inputField value="{!NewAccountRecord.Email__c}"/>  
            </apex:pageblockSection>
            <apex:pageblockButtons >
                <apex:commandButton value="saveAccount" action="{!saveRecord}"/>
            </apex:pageblockButtons>
        </apex:pageblock>
        
        <apex:pageBlock id="SearchBlock" Rendered="{!ShowBlock}">
            <apex:inputText value="{!searchstring}" label="Input"/> 
            <apex:commandButton value="Search records" action="{!search}" /> 
            <apex:commandButton value="Clear records" action="{!clear}"/> 
            <!-- <apex:commandButton value="Create account" action="{!create}"/>-->
            <apex:pageBlock title="Search Result" id="resBlock" rendered="{!DisplaySearchResults}">
                <apex:actionSupport event="onchange" reRender="Account"/> 
                <apex:pageblockTable value="{!acc}" var="a"> 
                    <apex:column value="{!a.name}"/> 
                    <apex:column value="{!a.id}"/>
                </apex:pageblockTable>
            </apex:pageBlock>
            
            
            <apex:pageBlock id="pb">
                <apex:inputField value="{!Account.Type}"/>
                <apex:pageBlockTable value="{!showList}" var="a" id="pt">
                    <apex:column headerValue="Account Name">
                        <apex:outputLink value="/{!a.id}">{!a.name}</apex:outputLink>
                    </apex:column>
                    <apex:column headerValue="Account Phone" value="{!a.Phone}"/>
                    <apex:column headerValue="Account Email" value="{!a.Email__c}"/>
                    
                    <apex:CommandButton action="{!executeSearch}" value="Search"/>
                    
                    <apex:selectList >
                        <apex:selectOptions value="{!options}"/>
                    </apex:selectList>
                </apex:pageBlockTable>
                
                
                <apex:commandButton value="First" action="{!ssc.first}" disabled="{!!ssc.hasPrevious}" reRender="pt,pb" />
                <apex:commandButton value="Previous" action="{!ssc.previous}" disabled="{!!ssc.hasPrevious}" reRender="pt,pb" />
                <apex:commandButton value="Next" action="{!ssc.next}" disabled="{!!ssc.hasNext}" reRender="pt,pb" />
                <apex:commandButton value="End" action="{!ssc.last}" disabled="{!!ssc.hasNext}" reRender="pt,pb" />
            </apex:pageBlock>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Controller:
public class AccController {
    
    public list <account> acc {get;set;} 
    public string searchstring {get;set;} 
    Public Boolean ShowCreateBlock{get;set;}
    public Boolean ShowBlock{get;set;}
    Public Boolean DisplaySearchResults{get;set;}
    public Account account{get;set;}
    Public Account NewAccountRecord{get;set;}
    
    Public Integer noOfRecords {get;set;}
    Public Integer size {get;set;}
    
    public AccController() {
        ShowCreateBlock = false;
        ShowBlock=True;
        DisplaySearchResults = false;
        NewAccountRecord= New Account(Name='Test');  
        size = 10;
    }
    
    public ApexPages.StandardSetController ssc{
        get{
            if(ssc == null){
                String queryResult = 'SELECT Id, Name, Phone, Email__c FROM Account';
                ssc = new ApexPages.StandardSetController(Database.getQueryLocator(queryResult));
                ssc.setPageSize(size);
                noOfRecords = ssc.getResultSize();
            }
            return ssc;
        }
        set;
    }
    
    public String getAccount() {
        return null;
    }
    
    
    public String options { get; set; }
    
    public PageReference executeSearch() {
        return null;
    }
    
    //public list<account> showList = new list<account>([select Name, Email__c,Phone from Account]);
    
    Public list<account> getshowList() {
        return (List<Account>)ssc.getRecords();
    }
    
    public PageReference create() {
        return null;
    }
    
    public pagereference search() { 
        string searchquery='select name,id from account where name like \'%'+searchstring+'%\' Limit 20'; 
        acc= Database.query(searchquery);
        DisplaySearchResults =true;
        if(acc.size()==0) {
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'account not found'));
            ShowCreateBlock = true; 
            ShowBlock=False;
        }
        return null;
    }
    
    public void clear() { 
        acc.clear(); 
    } 
    
    Public pagereference saveRecord() {
        acc=[select id,email__c from Account];
        for(Account a : acc) {
            if(NewAccountRecord.Email__c==a.Email__C) {
                ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Email is already exist'));
                return null;
            }
        }
        if(ApexPages.hasMessages()==false) {
            insert NewAccountRecord;
            pagereference  pageRef = new pagereference('/'+NewAccountRecord.Id);
            return pageRef ; 
        } 
        return null; 
    }
    
    public List<SelectOption> getItems() {
        List<SelectOption> options = new List<SelectOption>();
        options.add(new SelectOption('10','10'));
        options.add(new SelectOption('20','20'));
        options.add(new SelectOption('30','30'));
        options.add(new SelectOption('40','40'));
        return options;
    }
}

I hope it helps you.

Kindly let me know if it helps you and close your query by marking it as solved so that it can help others in the future.

Thanks and Regards,
Khan Anas

All Answers

Ahmed Ansari 13Ahmed Ansari 13
Khan AnasKhan Anas (Salesforce Developers) 
Hi Suraj,

Greetings to you!

Please try the below code. Kindly modify the code as per your requirement.

Visualforce:
<apex:page controller="AccController" showHeader="true" tabStyle="account" >
    <apex:form > 
        <apex:pageMessages ></apex:pageMessages>
        <apex:pageblock title="New Account" id="CreateRecordBlock" Rendered="{!ShowCreateBlock}">
            <apex:pageblockSection >
                <apex:inputField value="{!NewAccountRecord.Name}"/>
                <apex:inputField value="{!NewAccountRecord.Phone}"/>  
                <apex:inputField value="{!NewAccountRecord.Email__c}"/>  
            </apex:pageblockSection>
            <apex:pageblockButtons >
                <apex:commandButton value="saveAccount" action="{!saveRecord}"/>
            </apex:pageblockButtons>
        </apex:pageblock>
        
        <apex:pageBlock id="SearchBlock" Rendered="{!ShowBlock}">
            <apex:inputText value="{!searchstring}" label="Input"/> 
            <apex:commandButton value="Search records" action="{!search}" /> 
            <apex:commandButton value="Clear records" action="{!clear}"/> 
            <!-- <apex:commandButton value="Create account" action="{!create}"/>-->
            <apex:pageBlock title="Search Result" id="resBlock" rendered="{!DisplaySearchResults}">
                <apex:actionSupport event="onchange" reRender="Account"/> 
                <apex:pageblockTable value="{!acc}" var="a"> 
                    <apex:column value="{!a.name}"/> 
                    <apex:column value="{!a.id}"/>
                </apex:pageblockTable>
            </apex:pageBlock>
            
            
            <apex:pageBlock id="pb">
                <apex:inputField value="{!Account.Type}"/>
                <apex:pageBlockTable value="{!showList}" var="a" id="pt">
                    <apex:column headerValue="Account Name">
                        <apex:outputLink value="/{!a.id}">{!a.name}</apex:outputLink>
                    </apex:column>
                    <apex:column headerValue="Account Phone" value="{!a.Phone}"/>
                    <apex:column headerValue="Account Email" value="{!a.Email__c}"/>
                    
                    <apex:CommandButton action="{!executeSearch}" value="Search"/>
                    
                    <apex:selectList >
                        <apex:selectOptions value="{!options}"/>
                    </apex:selectList>
                </apex:pageBlockTable>
                
                
                <apex:commandButton value="First" action="{!ssc.first}" disabled="{!!ssc.hasPrevious}" reRender="pt,pb" />
                <apex:commandButton value="Previous" action="{!ssc.previous}" disabled="{!!ssc.hasPrevious}" reRender="pt,pb" />
                <apex:commandButton value="Next" action="{!ssc.next}" disabled="{!!ssc.hasNext}" reRender="pt,pb" />
                <apex:commandButton value="End" action="{!ssc.last}" disabled="{!!ssc.hasNext}" reRender="pt,pb" />
            </apex:pageBlock>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Controller:
public class AccController {
    
    public list <account> acc {get;set;} 
    public string searchstring {get;set;} 
    Public Boolean ShowCreateBlock{get;set;}
    public Boolean ShowBlock{get;set;}
    Public Boolean DisplaySearchResults{get;set;}
    public Account account{get;set;}
    Public Account NewAccountRecord{get;set;}
    
    Public Integer noOfRecords {get;set;}
    Public Integer size {get;set;}
    
    public AccController() {
        ShowCreateBlock = false;
        ShowBlock=True;
        DisplaySearchResults = false;
        NewAccountRecord= New Account(Name='Test');  
        size = 10;
    }
    
    public ApexPages.StandardSetController ssc{
        get{
            if(ssc == null){
                String queryResult = 'SELECT Id, Name, Phone, Email__c FROM Account';
                ssc = new ApexPages.StandardSetController(Database.getQueryLocator(queryResult));
                ssc.setPageSize(size);
                noOfRecords = ssc.getResultSize();
            }
            return ssc;
        }
        set;
    }
    
    public String getAccount() {
        return null;
    }
    
    
    public String options { get; set; }
    
    public PageReference executeSearch() {
        return null;
    }
    
    //public list<account> showList = new list<account>([select Name, Email__c,Phone from Account]);
    
    Public list<account> getshowList() {
        return (List<Account>)ssc.getRecords();
    }
    
    public PageReference create() {
        return null;
    }
    
    public pagereference search() { 
        string searchquery='select name,id from account where name like \'%'+searchstring+'%\' Limit 20'; 
        acc= Database.query(searchquery);
        DisplaySearchResults =true;
        if(acc.size()==0) {
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'account not found'));
            ShowCreateBlock = true; 
            ShowBlock=False;
        }
        return null;
    }
    
    public void clear() { 
        acc.clear(); 
    } 
    
    Public pagereference saveRecord() {
        acc=[select id,email__c from Account];
        for(Account a : acc) {
            if(NewAccountRecord.Email__c==a.Email__C) {
                ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Email is already exist'));
                return null;
            }
        }
        if(ApexPages.hasMessages()==false) {
            insert NewAccountRecord;
            pagereference  pageRef = new pagereference('/'+NewAccountRecord.Id);
            return pageRef ; 
        } 
        return null; 
    }
    
    public List<SelectOption> getItems() {
        List<SelectOption> options = new List<SelectOption>();
        options.add(new SelectOption('10','10'));
        options.add(new SelectOption('20','20'));
        options.add(new SelectOption('30','30'));
        options.add(new SelectOption('40','40'));
        return options;
    }
}

I hope it helps you.

Kindly let me know if it helps you and close your query by marking it as solved so that it can help others in the future.

Thanks and Regards,
Khan Anas
This was selected as the best answer
HoysalaHoysala
Thanku so much khan Anas... It worked perfectly