<apex:page controller="PagingController">
<apex:form >
<apex:pageBlock title="Invoices"> <apex:pageBlockButtons location="top">
<apex:commandButton action="{!process}" value="Selected" />
<apex:commandButton action="{!cancel}" value="Cancel" />
</apex:pageBlockButtons>
<apex:pageMessages /> <apex:pageBlockSection title="Goods - Page {!pageNumber}" columns="1">
<apex:pageBlockTable value="{!categories}" var="c">
<apex:column width="25px">
<apex:inputCheckbox value="{!c.checked}" />
</apex:column>
<apex:column value="{!c.invoice.Name}" headerValue="Name" />
<apex:column value="{!c.invoice.Invoice_Total1__c}" headerValue="Total" />
<apex:column value="{!c.invoice.Status__c}" headerValue="Status" />
</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>

Controller的代码

public with sharing class PagingController {
List<categoryWrapper> 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 Name,Invoice_Total1__c,Status__c,Id from Invoice__c]));
con.setPageSize(4);
}
return con;
}
set;
} //returns a list of wrapper objects for the sObjects in the current page set
public List<categoryWrapper> getCategories(){
categories = new List<categoryWrapper>();
for(Invoice__c invoice : (List<Invoice__c>)con.getRecords()){
categories.add(new CategoryWrapper(invoice));
}
return categories;
} //displays the selected items
public PageReference process(){
for(CategoryWrapper cw:categories){
if(cw.checked){
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,cw.invoice.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();
}
}

包装类的代码

public class CategoryWrapper {
public Boolean checked{get;set;} public Invoice__c invoice{get;set;} public CategoryWrapper(){
invoice = new Invoice__c();
checked = false;
} public CategoryWrapper(Invoice__c invoice){
this.invoice = invoice;
checked = false;
}
}

最后实现的效果如下图所示

65、salesforce的数据分页的更多相关文章

  1. salesforce 零基础开发入门学习(八)数据分页简单制作

    本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...

  2. mysq大数据分页

    mysql limit大数据量分页优化方法 Mysql的优化是非常重要的.其他最常用也最需要优化的就是limit.Mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急 ...

  3. Sql Server 数据分页

    http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html 1.引言 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了 ...

  4. Oracle、MySql、SQLServer数据分页查询

    看过此博文后Oracle.MySql.SQLServer 数据分页查询,在根据公司的RegionRes表格做出了 SQLserver的分页查询语句: 别名.字段 FROM( SELECT row_nu ...

  5. 知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页

    回到目录 数据分页是这个经常说的东西,无论在WEBForm还是WinForm中它都会被单独拿出来,或者是公用组件,或者是公用类库,反正对于数据分页这个东西,总是我们关注的一个话题,但事实上,数据分页归 ...

  6. Oracle中的数据分页

    --数据分页脚本 --创建包含数据分页代码元素声明的包头结构create or replace package data_controlis type type_cursor_data is ref ...

  7. 数据分页处理系列之三:Neo4j图数据分页处理

      首先简单介绍下Neo4j,Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数 ...

  8. 数据分页处理系列之二:HBase表数据分页处理

      HBase是Hadoop大数据生态技术圈中的一项关键技术,是一种用于分布式存储大数据的列式数据库,关于HBase更加详细的介绍和技术细节,朋友们可以在网络上进行搜寻,笔者本人在接下来的日子里也会写 ...

  9. 数据分页处理系列之一:Oracle表数据分页检索SQL

      关于Oracle数据分页检索SQL语法,网络上比比皆是,花样繁多,本篇也是笔者本人在网络上搜寻的比较有代表性的语法,绝非本人原创,贴在这里,纯粹是为了让"数据分页专题系列"看起 ...

随机推荐

  1. linux记事工具:RedNotebook Lifeograph Kontact ThotKeeper

    Linux桌面有许多灵活而功能强大的日记工具,如支持标签.加密.多种日志模版和实时搜索.其中的优秀者包括: RedNotebook Lifeograph Kontact ThotKeeper

  2. select的限制与poll的使用

    select的限制 select的并发数受到两个限制:1.一个进程能打开的最大描述符数量;2.select中fd_set集合容量的限制(FD_SETSIZE) 关于进程的最大描述符数量: ulimit ...

  3. asp.net dev xtraReporting(一)静态页面

    新建一个空web应用程序 添加一个default.aspx 添加新建项 建一个空report 写点数据 defalut.aspx中拖拽一个aspxDocumentView 预览可以实现展示了

  4. react学习笔记_02-元素渲染

    const element = <h1>Hello, world</h1>; 上面的内容代表react中的一个元素,元素是构成 React 应用的最小砖块. 与浏览器的 DOM ...

  5. SQL数据库—<6>存储过程

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  6. Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

    为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...

  7. httptesting HTTP(s)接口自动化测试框架

    坐标: https://github.com/HttpTesting/pyhttp # HttpTesting ![PyPI](https://img.shields.io/pypi/v/HttpTe ...

  8. Codeforces 364D 随机算法

    题意:给你一个序列,定义ghd为一个序列中任意n / 2个数的gcd中最大的那个,现在问这个序列的ghd为多少. 思路:居然是论文题...来自2014年国家集训队论文<随机化算法在信息学竞赛中的 ...

  9. Tomcat8.0源码编译

    最近打算开始研究一下Tomcat的工作原理,拜读一下源码.所以先从编译源码开始了.尽管网上有那么多的资料,但是总是觉得,自己研究一遍,写一遍,在动手做一遍能够让我们更加深入的了解.现在整个社会都流行着 ...

  10. 五、Redis五种类型 - 字符串类型

    1.介绍: 字符串类型是Redis中最基本的数据类型,可以存储任何形式的字符串数据,最大容量是512MB. key 和 value 都是区分大小写的. 2.命令介绍 (1).赋值: set key v ...