Visualforce实现过滤、数据列表显示、分页功能

可以参考salesforce官网开发文档:https://trailhead.salesforce.com/modules/visualforce_fundamentals/units/visualforce_standard_list_controllers

代码如下:

<apex:page sidebar="false" standardController="Contact" recordSetVar="contacts">
<apex:form>

<apex:pageBlock title="Contact List" id="contacts_list">

Filter:
<apex:selectList value="{!filterId}" size="1">
<apex:selectOptions value="{!listViewOptions}"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>

<!--Contacts List-->
<apex:pageBlockTable value="{!contacts}" var="ct">
<apex:column value="{!ct.FirstName}"/>
<apex:column value="{!ct.LastName}"/>
<apex:column value="{!ct.Phone}"/>
<apex:column value="{!ct.Title}"/>
</apex:pageBlockTable>

<!--Pagination-->
<table style="width:100%">
<tr>
<td>
Page:
<apex:outputText value="{!PageNumber} of {!CEILING(ResultSize / PageSize)}"/>
</td>
<td align="center">
<apex:commandLink action="{!Previous}" value="<<Previous" rendered="{!HasPrevious}"/>
<apex:outputText style="color:#ccc;" value="<<Previous" rendered="{!NOT(HasPrevious)}"/>

&nbsp;&nbsp;

<apex:commandLink action="{!Next}" value="Next>>" rendered="{!HasNext}"/>
<apex:outputText style="color:#ccc;" value="Next>>" rendered="{!NOT(HasNext)}"/>
</td>
<td align="right">
Record per Page:
<apex:selectList value="{!PageSize}" size="1">
<apex:selectOption itemValue="5" itemLabel="5"/>
<apex:selectOption itemValue="20" itemLabel="20"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
</td>
</tr>

</table>

</apex:pageBlock>
</apex:form>
</apex:page>

代码解释:

1、在实现分页功能中,使用三个属性来指示多少页:PageNumber(当前页数) ResultSize(总的页面大小) PageSize(每一页的大小)

2、使用表达式{! HasPrevious}?这就是Visualforce如何使您能够有条件地显示组件,也就是说,这取决于布尔表达式的结果。这里,页面标记引用标准列表控制器HasPrevious和HasNext提供的布尔属性,它允许您知道给定方向上是否有更多记录。通过使用呈现的属性中的表达式,您可以在页面上显示或隐藏该组件的结果。这是前一个链接在您首次加载页面时显示为灰色,但如果您通过单击下一个链接向前移动,则会变为活动状态。

实现的效果图:

Visualforce入门第六篇_2017.3.1的更多相关文章

  1. Visualforce入门第五篇_2017.3.1

    Visualforce添加过滤器,实现数据的筛选 参考原文:https://trailhead.salesforce.com/modules/visualforce_fundamentals/unit ...

  2. Visualforce入门第三篇_2017.3.2

    Visualforce实现显示Record List(列表) 详细见链接:https://trailhead.salesforce.com/modules/visualforce_fundamenta ...

  3. Android JNI入门第六篇——C调用Java

    本篇将介绍在JNI编程中C调用Java实现. 源码下载地址:http://download.csdn.net/detail/xyz_lmn/4868265 关键代码: java: public cla ...

  4. # hadoop入门第六篇:Hive实例

    前言   前面已经讲了如何部署在hadoop集群上部署hive,现在我们就做一个很小的实例去熟悉HIVE QL.使用的数据是视频播放数据包括视频编码,播放设备编码,用户账号编码等,我们在这个数据基础上 ...

  5. Android入门第六篇之ListView (一)

    本文来自http://blog.csdn.net/hellogv/ ListView是一个经经常使用到的控件,ListView里面的每一个子项Item能够使一个字符串,也能够是一个组合控件.先说说Li ...

  6. JavaMail入门第五篇 解析邮件

    上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...

  7. JavaMail入门第四篇 接收邮件

    上一篇JavaMail入门第三篇 发送邮件中,我们学会了如何用JavaMail API提供的Transport类发送邮件,同样,JavaMail API中也提供了一些专门的类来对邮件的接收进行相关的操 ...

  8. JavaMail入门第三篇 发送邮件

    JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Mes ...

  9. Android JNI入门第五篇——基本数据类型使用

    前面讲到了java和native数据类型,这里就开始做一下使用: 第一步:新建工程 第二部:书写 java方法: public class NativeMethod { static { System ...

随机推荐

  1. iOS获取设备IP地址

    项目用到要获取iOS设备的IP地址,有2种方法: 1)第一种比较简单,但是只有当你的设备连接到WIFI时才能获取到IP地址,倘若你的设备用的是流量,那就不行.代码如下: #import <ifa ...

  2. INSPIRED启示录 读书笔记 - 第31章 苹果公司给我的启示

    苹果公司值得学习的经验 1.硬件为软件服务:苹果公司明白硬件必须为软件服务,软件直接服务用户,满足用户需求.采用多点触控显示屏.重力加速器.距离传感器这些硬件技术是为了配合软件满足用户需求 2.软件为 ...

  3. vRO Extend VirtualDisk Workflow

    https://vbombarded.wordpress.com/2015/02/20/vrealize-orchestrator-extend-virtual-disk-workflow/ var ...

  4. Go 语言defer用法

    defer延迟调用: 1.确保调用在函数结束时发生: 2.defer列表为先进后出: 3.通常在Open/Close  Lock/Unlock中使用. defer调用顺序示例: package mai ...

  5. vector对象

    vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,例如vector<int> 定义和初始化vector对象: vector<T> v1    ...

  6. mysql-用命令导出、导入表结构或数据

    1. 导出整个数据库(表结构和数据) mysqldump -u用户名 -p  数据库名 > 导出的文件名 [root@localhost work]# mysqldump -uroot -p m ...

  7. 如何在java中导入jar包

    通常在lib文件夹中存放从外部引入的jar包 所以在项目上右击,new 一个folder,命名为lib 然后把JAR文件复制进去. 然后再在项目上右击,build Path ——configure b ...

  8. myEclipse 2014 破解教程

    因为经常在不同电脑里安装配置下载myEclipse,所以干脆记录下来,一直找度娘也是很麻烦的. 此教程仅对myEclipse2014 有效. 破解工具:https://pan.baidu.com/s/ ...

  9. ambari2.4.2在CentOS7上的二次开发

    前言:如果想安装到CentOS7,就一定要将源码在CentOS7上编译,然后安装,否则可能会出现各种问题 目录 源码结构 技术点 编译环境的搭建  安装samba 安装编译环境 整体编译 ambari ...

  10. Nginx虚拟主机配置模板

    /////////////////////////////写在前头//////////////////////////////////////////Nginx 服务器中文文档:http://www. ...