<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. php面试专题---2、常量及数据类型考点

    php面试专题---2.常量及数据类型考点 一.总结 一句话总结: 变量为null和变量判断为false的情况需要仔细注意下 1.PHP中字符串可以使用哪三种定义方法以及各自的区别是什么? 单引号:不 ...

  2. Hibernate中常用HQL

    HQL是Hibernate自带的查询语言 HQL是一种面向对象的查询语言.SQL的操作对象是数据表和列等数据对象,而HQL的操作对象是类.实例.属性等. HQL的语法很像SQL的语法 以下举例均以学生 ...

  3. charles抓包看性能数据

    1.优化某个接口或加载速度(H5加载速度慢) 抓包看Overview ①看Duration,就是接口的加载时间 ②看Latency,就是延时一端传播到另一端所花费的时间:一般和网络有关:可以综合Dur ...

  4. Pipenv管理项目环境--Django项目的一些最佳实践

    virtualenv --- 使用不方便 提升效率,管理更便捷--- pipenv 新建环境:: pip3 install pipenv 在项目下,用pipenv安装 Djagno pipenv in ...

  5. QTP加载第三方DLL(C#)实现清除IE缓存(转)

    由于QTP的默认编程语言是VBS, 而VBS是一种相对来说功能比较局限的脚本语言,因此我们在编写自动化测试脚本时会有很多功能无法很好的实现. 相对来说c#是一种高级编程语言, 可以实现大多数windo ...

  6. tensorflow|tf.train.slice_input_producer|tf.train.Coordinator|tf.train.start_queue_runners

    #### ''' tf.train.slice_input_producer :定义样本放入文件名队列的方式[迭代次数,是否乱序],但此时文件名队列还没有真正写入数据 slice_input_prod ...

  7. IIS 解决跨域问题

    打开 HTTP响应标头 添加如下三条 名称Access-Control-Allow-Origin  值*名称Access-Control-Allow-Headers  值Content-Type,Ac ...

  8. Springboot03-异常处理

    springboot默认异常处理 Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并然后返回一个固定的错误页面 统一异常处理 创建全局异常处理类 @ ...

  9. <每日一题>题目4:for循环套生成器的面试题

    题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g ...

  10. Java开发中的23种设计模式详解(3)行为型

    本章是关于设计模式的最后一讲,会讲到第三种设计模式--行为型模式,共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模 ...