• 解释 Visualforce 标准列表控制器的含义,以及与标准(记录)控制器的区别。
  • 列出标准列表控制器与标准控制器不同的三个操作。
  • 在 Visualforce 页面上使用标准列表控制器显示记录列表。
  • 定义分页,并将其添加到 Visualforce 页面。
  • 标准列表控制器允许您创建可以显示或操作一组记录的 Visualforce 页面。

    显示记录列表是几乎所有 Web 应用程序的基本行为。Visualforce 只需使用标记,无需后端代码,就可以非常轻松地显示相同类型的记录列表。以往,标准控制器是秘诀,在这种情况下秘诀是标准 列表 控制器。

    标准列表控制器提供了诸多强大的自动行为,例如查询特定对象的记录并使记录在集合变量中可用,以及对结果进行筛选和分页。将标准列表控制器添加到页面与添加标准(记录)控制器非常相似,目的是一次处理多条记录,而不是只处理一条记录。

    显示记录列表

    使用标准列表控制器和迭代组件,例如使用 <apex:pageBlockTable> 显示记录列表。

    标准(记录)控制器可以轻松地将单个记录加载到可以在 Visualforce 页面上使用的变量中。标准 列表 控制器与之类似,不同的是,它不是将单个记录加载到变量中,而是将记录的列表或集合加载到变量中。

    因为您处理的是一个集合,而不是单个记录,所以需要使用迭代组件来显示。迭代组件处理类似项的集合,而不是单个值。迭代组件循环遍历集合,并且对于每个记录,根据作为组件标记的一部分提供的模板生成输出。这听起来很复杂,但是当您阅读标记时,也很快就能理解。

    使用标准列表控制器的标记几乎与使用标准的、一次一条记录的控制器相同。为清楚起见,以下示例中以粗体突出显示主要差异。

  • 要创建新的 Visualforce 页面,请打开 Developer Console,然后单击 File(文件) | New(新建) | Visualforce Page(Visualforce 页面) 。输入 ContactList 作为页面名称。
  • 在编辑器中,将标记替换为以下内容。
    <apex:page standardController="Contact" recordSetVar="contacts">
        <apex:pageBlock title="Contacts List">
            <!-- Contacts List -->
            <apex:pageBlockTable value="{! contacts }" var="ct">
                <apex:column value="{! ct.FirstName }"/>
                <apex:column value="{! ct.LastName }"/>
                <apex:column value="{! ct.Email }"/>
                <apex:column value="{! ct.Account.Name }"/>
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:page>
  • 单击 Preview(预览) 可打开页面预览,您可以在进行更改时查看该预览。此时会打开一个新窗口,显示标准 Salesforce 页面标题、侧栏元素、以及联系人列表。 标准列表控制器的联系人列表

    使用标准列表控制器与使用标准控制器非常相似。首先在 <apex:page> 组件上设置 standardController 属性,然后在同一个组件上设置 recordSetVar 属性。就像使用标准控制器一样, standardController 属性设置要使用的对象。recordSetVar 设置要使用记录集合创建的变量的名称,这里是 {! contacts } 。按照惯例,变量通常被命名为对象名称的复数形式。

    <apex:pageBlockTable> 是一个迭代组件,用于生成数据表,并带有平台样式。以下是表格标记中会发生的事情。
  •