Skip to main content
답변 2개
  1. 2018년 5월 26일 오후 7:31
    here is an example of pagination.

    Visualforce page.

    <apex:page controller="PagingController">

    <apex:form >

    <apex:pageBlock title="Paging through Categories of Stuff">

    <apex:pageBlockButtons location="top">

    <apex:commandButton action="{!process}" value="Process Selected"/>

    <apex:commandButton action="{!cancel}" value="Cancel"/>

    </apex:pageBlockButtons>

    <apex:pageMessages />

    <apex:pageBlockSection title="Category Results - Page ⌗{!pageNumber}" columns="1">

    <apex:pageBlockTable value="{!categories}" var="c">

    <apex:column value="{!c.Id}" headerValue="Id"/>

    <apex:column value="{!c.Name}" headerValue="Name"/>

    </apex:pageBlockTable>

    </apex:pageBlockSection>

    </apex:pageBlock>

    <apex:panelGrid columns="4">

    <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:panelGrid>

    </apex:form>

    </apex:page>

    Apex controller

    public with sharing class PagingController {

    List<cat3__c> categories {get;set;}

    // instantiate the StandardSetController from a query locator

    public ApexPages.StandardSetController con {

    get {

    if(con == null) {

    con = new ApexPages.StandardSetController(Database.getQueryLocator([Select Id, Name FROM Cat3__c Order By Name limit 100]));

    // sets the number of records in each page set

    con.setPageSize(5);

    }

    return con;

    }

    set;

    }

    public List<Cat3__c> getCategories() {

    categories = new List<Cat3__c>();

    for (Cat3__c category : (List<cat3__c>)con.getRecords())

    categories.add(category);

    return categories;

    }

    // displays the selected items

    public PageReference process() {

    for (Cat3__c cw : categories) {

    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,cw.name));

    }

    return null;

    }

    // indicates whether there are more records after the current page set.

    public Boolean hasNext {

    get {

    return con.getHasNext();

    }

    set;

    }

    // indicates whether there are more records before the current page set.

    public Boolean hasPrevious {

    get {

    return con.getHasPrevious();

    }

    set;

    }

    // returns the page number of the current page set

    public Integer pageNumber {

    get {

    return con.getPageNumber();

    }

    set;

    }

    // returns the first page of records

    public void first() {

    con.first();

    }

    // returns the last page of records

    public void last() {

    con.last();

    }

    // returns the previous page of records

    public void previous() {

    con.previous();

    }

    // returns the next page of records

    public void next() {

    con.next();

    }

    // returns the PageReference of the original page, if known, or the home page.

    public void cancel() {

    con.cancel();

    }

    }

     
0/9000