Visualfroce Page:
<apex:page standardController="Lead" extensions="pagination_controller" sidebar="false" showHeader="false">
<apex:form id="frm">
<apex:pageBlock title="Pagination" >
<apex:pageblockSection columns="1">
<!-- <apex:repeat value="{!mapLeads[selectedPage]}" var="a">
<apex:outputlabel value="{!a.name},{!a.email}"></apex:outputlabel>
</apex:repeat> -->
<apex:pageblocktable value="{!mapLeads[selectedpage]}" var="a">
<apex:column value="{!a.name}"/>
<apex:column value="{!a.email}"/>
</apex:pageblocktable>
<apex:selectList value="{!selectedPage}" size="1" multiselect="false">
<apex:SelectOptions value="{!pagesOptions}"></apex:SelectOptions>
<apex:actionSupport event="onchange" action="{!nextPage}" reRender="frm" />
</apex:selectList>
</apex:pageblockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Apex Class:
public with sharing class pagination_controller {
public Integer noOfRecordPerPage {get;set;}
public Integer selectedPage {get;set;}
public Map<Integer, List<Lead >> mapLeads{get;set;}
public List<selectoption> pagesOptions {get;set;}
public pagination_controller(ApexPages.StandardController controller) {
mapLeads =new Map<Integer, List<Lead >> ();
noOfRecordPerPage = 10;
selectedPage = 1;
List<Lead> listLeads = [select Name, Fax, Email from Lead limit 21];
if(listLeads.size()>0){
pagesOptions = new List<SelectOption>();
integer total_no_of_pages = listLeads.size()/noOfRecordPerPage;
if(math.mod(listLeads.size(),noOfRecordPerPage) > 0){
total_no_of_pages = total_no_of_pages +1;
}
integer pageStartValue = 0;
integer pageEndValue = noOfRecordPerPage;
for(integer i = 0; i<total_no_of_pages ; i++){
integer counter = i+1;
pagesOptions.add(new SelectOption(counter+'',counter +''));
List<Lead> leadList = new List<Lead>();
for(integer j = pageStartValue ; j< pageEndValue; j++){
try{
leadList.add(listLeads[j]);
}
catch(Exception e) {
}
}
pageStartValue = pageEndValue;
pageEndValue = noOfRecordPerPage*(i+2);
mapLeads.put(counter,leadList);
}
}
}
public void nextPage(){}
}
No comments:
Post a Comment