这是我的vf页面,我在BadgeController
的{{1}}获得了9条记录,即conList
到conList[0]
。
我使用变量conList[8]
和first
作为List的下标。
我在每个顶点将变量值增加2:重复,从0到2可以正常工作。
但是当变量变为9时,它显示的错误如下:
下标值9无效。必须在0到8之间。
如何防止变量递增?
如何在if .. else条件下中断代码的执行?
second
答案 0 :(得分:1)
我不确定你在这里问什么,但听起来你只想在列表中显示交替值。这是Apex的工作(或者如果你真的不想编写任何Apex,可能是JavaScript,但如果你计划在Force.com上停留一段时间,你应该了解Apex)。在Apex中,您可以使用列表执行任何您喜欢的操作,并显示您需要显示的任何内容,而无需将您的演示文稿与业务逻辑紧密结合。从Visualforce Developer's Guide:
注意:apex:variable不支持在一个内部重新分配 迭代组件,例如apex:dataTable或apex:repeat。该 这样做的结果,例如,将apex:变量增加为a 计数器,不受支持且未定义。
所以这是一个Apex示例,它创建两个交替元素列表供Visualforce显示:
public with sharing class Sample
{
public List<Contact> conListOne {get; private set;}
public List<Contact> conListTwo {get; private set;}
public Sample()
{
conListOne = new List<Contact>();
conListTwo = new List<Contact>();
Contact[] tmpConList = [SELECT Id, Name, Account.Name FROM Contact LIMIT 10];
Integer i = 0;
while(i < tmpConList.size())
{
conListOne.add(tmpConList[i]);
if((i + 1) < tmpConList.size())
{
conListTwo.add(tmpConList[i+1]);
}
i += 2;
}
}
}
现在,您可以在Visualforce中显示两个不同的列表,这些列表具有原始SOQL中的偶数/奇数行号:
<apex:pageBlockTable value="{!conListOne}" var="item">
</apex:pageBlockTable>
<apex:pageBlockTable value="{!conListTwo}" var="item">
</apex:pageBlockTable>
或者只是修改Apex以生成具有您希望的任何行顺序的单个列表并显示该列表。
希望有所帮助。