Ajax (1) Apex Class (12) Apex Trigger (2) Community (2) Home Page (1) HTML (4) Integration (3) JS (7) KB (1) Label (1) Licenses (1) Listing (1) Log (1) OOPs (5) Sharing (1) Static Resource (1) Test Class (3) URI (1) Visualforce (10)

Wednesday 5 March 2014

Pagination

<apex:page standardcontroller="Account" extensions="MyPage">
  <apex:form >
     <apex:pageBlock >
       <apex:commandButton value="New Account" action="https://c.ap1.visual.force.com/apex/AccountView"/>
        <apex:datatable value="{!lstAccount}" var="c" id="idDt" cellPadding="8" border="0" >
            <apex:column >
                <apex:facet name="header">Name</apex:facet>
                <apex:outputField value="{!c.name}"  />
             </apex:column>
              <apex:column >
               <apex:facet name="header">Phone</apex:facet>
                <apex:outputField value="{!c.phone}"  />
            </apex:column> 
        </apex:dataTable>
        <apex:commandButton value="First" action="{!goFirst}" disabled="{!disableF}"  />&nbsp;
         <apex:commandButton value="Prev" action="{!goPrev}" disabled="{!disableP}" />&nbsp;
          <apex:commandButton value="Next" action="{!goNext}"  disabled="{!disableN}"/>&nbsp;
           <apex:commandButton value="Last" action="{!goLast}" disabled="{!disableL}" />&nbsp;&nbsp;&nbsp;
          <apex:selectList size="1" value="{!pageNumber}" >
               <apex:selectOptions value="{!PNumber}"/>
          </apex:selectList> of {!totalpage}&nbsp;&nbsp; <apex:commandButton value="Go" action="{!toJump}"  />
     </apex:pageBlock>
  </apex:form>
</apex:page>
-----------------------------------------------------------------------------
------------------------------------------------------------------------------
public class MyPage {
ApexPages.StandardController con{get;set;}
public List<Account> lstaccount{get;set;}
public Integer pageNumber{get;set;}
public Integer pageRows{get;set;}
public Integer totalPage{get;set;}
Public AggregateResult[] result{get;set;}
public Integer allPage{get;set;}
public Boolean disableF{get;set;}
public Boolean disableP{get;set;}
public Boolean disableN{get;set;}
public Boolean disableL{get;set;}
    public MyPage(ApexPages.StandardController controller) {
    con=controller;
    pageRows=5;
    pageNumber=1;
    result=[select count(id)c from Account];
    totalPage=Integer.valueOf(math.floor(Integer.valueof(result[0].get('c'))/pageRows)+(math.mod(Integer.valueof(result[0].get('c')),pageRows)>0?1:0));
    lstAccount=findRecord(pageRows,pageNumber);
    toVisible(pageNumber);
       }
    
     public List<Account> findRecord(Integer pageRows,Integer pageNumber)
                  {
                  Integer crossRecord=(pageNumber-1)*pageRows;
                  List<Account> lstAccount=[Select name,phone from Account order by name limit:pageRows offset:crossRecord];
                  return lstaccount;
                  }
           public void goFirst()
         {
         pageNumber=1;
         lstAccount=findRecord(pageRows,pageNumber);
          toVisible(pageNumber);
         }
        public void goPrev()
         {
         pageNumber-=1;
        
         lstAccount=findRecord(pageRows,pageNumber);
          toVisible(pageNumber);
         }
          public void goNext()
         {
         pageNumber+=1;
         lstAccount=findRecord(pageRows,pageNumber);
          toVisible(pageNumber);
         }
          public void goLast()
         {
         pageNumber=totalpage;
         lstAccount=findRecord(pageRows,pageNumber);
          toVisible(pageNumber);
         
         }
       
          public void toJump()
         {
         pageNumber=Integer.valueOf(pageNumber);
         lstAccount=findRecord(pageRows,pageNumber);
         toVisible(pageNumber);
         }
         
              public void toVisible(Integer pageNumber)
         {
         
if(pageNumber==1){
   disableF=true;
   disableP=true;
   disableN=false;
   disableL=false;}

if(pageNumber>1&& pageNumber<totalPage){
   disableF=false;
   disableP=false;
   disableN=false;
   disableL=false;}

if(pageNumber==totalPage){
   disableF=false;
   disableP=false;
   disableN=true;
   disableL=true;}
         }  
         public List<SelectOption> getPNumber() {
       List<SelectOption> options = new List<SelectOption>();
       for(Integer i=1;i<=totalpage;i++){
        options.add(new SelectOption(String.valueof(i),String.valueof(i)));
          }
        return options;
   
    }

}

No comments:

Post a Comment