📜  visualforce 中的 repaet 标记 (1)

📅  最后修改于: 2023-12-03 15:05:51.001000             🧑  作者: Mango

Visualforce 中的 Repeat 标记

在 Visualforce 中,我们可以使用 apex:repeat 标记来循环遍历一个列表或者集合,并将其中的元素呈现到页面中。这个标记相当于 Java 中的 for-each 循环,可以让我们更方便地处理数据展示的需求。

基本用法

下面是 apex:repeat 标记的基本用法:

<apex:repeat value="{!myList}" var="item">
    {! item }
</apex:repeat>

这个例子中,我们将一个名为 myList 的变量传入 value 参数,表示我们要循环遍历这个列表。在循环的过程中,我们用 var 参数来指定当前迭代的元素的变量名,这里我们将其命名为 item。在循环体内,我们直接使用 {! item } 来呈现这个变量的值。

嵌套循环

有时候我们需要对多个列表或集合进行嵌套循环,在 Visualforce 中也可以轻松实现。下面是一个嵌套循环的例子:

<apex:repeat value="{!outerList}" var="outerItem">
    Outer item: {! outerItem }
    <apex:repeat value="{!innerMap[outerItem]}" var="innerItem">
        Inner item: {! innerItem }
    </apex:repeat>
</apex:repeat>

这个例子中,我们针对一个名为 outerList 的列表进行了循环,将每个元素依次取出并显示。在这个循环的循环体内,我们使用了一个新的 apex:repeat 标记,针对一个名为 innerMap 的映射类型进行了循环。这个映射类型中的键是 outerList 中的每个元素,值是一个子列表。我们将这个子列表传入了 value 参数,将嵌套的循环体内的迭代元素命名为 innerItem 并显示。

控制循环行为

apex:repeat 标记中,我们还可以使用 firstlastindex 等属性来获取当前循环迭代中元素所处的位置或状态。下面是一些例子:

  • first 属性:如果当前元素是列表或集合的第一个元素,返回 true。
  • last 属性:如果当前元素是列表或集合的最后一个元素,返回 true。
  • index 属性:返回当前元素在列表或集合中的索引位置。

下面是一个根据循环位置控制样式的例子:

<apex:repeat value="{!myList}" var="item" rowClasses="odd,even">
    <div class="{!IF (modulus(index,2)==0,'even','odd')}"> {! item } </div>
</apex:repeat>

在这个例子中,我们使用了 rowClasses 属性来为每行添加样式,这个属性可以接受多个值,中间用逗号分隔。在循环体内,我们使用了 IF 函数,根据 index 的奇偶性判断当前行应该使用哪种样式,并分别添加到 div 标签的 class 属性中。

总结

在 Visualforce 中,apex:repeat 标记是一个十分方便的标记,可以帮助我们在页面中进行数据的展示和渲染。除了基本的循环迭代以外,我们还可以根据循环位置来控制操作,达到更加灵活的效果。