我的Visualforce页面中有一个<apex:SelectCheckBoxes>
组件,它从Apex方法中获取其选择选项。我想要一个标签,每个复选框旁边都会显示一个链接。我怎样才能做到这一点?请帮忙。
答案 0 :(得分:3)
实现此目的的一种方法是单独使用apex:inputCheckbox控件,而不是依赖selectCheckboxes为您执行所有渲染。在建议中更难具体化,因为这个问题可以通过多种方式得到解答。
例如,如果您需要将这些复选框显示在SObject实例旁边的列表中,请创建一个包装类。如果它们基本上是单点菜单,则可以创建包含布尔值的类,并创建此类的实例列表。然后创建一个dataTable,pageBlockTable等,并在其中一列中包含复选框组件。或者只是使用apex:如果您不想要任何其他表格格式,请重复。
以下是VF指南中的重复示例:
<!-- Page: -->
<apex:page controller="repeatCon" id="thePage">
<apex:repeat value="{!strings}" var="string" id="theRepeat">
<apex:outputText value="{!string}" id="theValue"/><br/>
</apex:repeat>
</apex:page>
/*** Controller: ***/
public class repeatCon
{
public String[] getStrings()
{
return new String[]{'ONE','TWO','THREE'};
}
}
用inputCheckbox替换outputText,用Boolean替换String数组。然后只需从apex:outputLink开始,然后使用复选框跟随它。
以下是使用类来完成您想要完成的工作的示例。
顶点:
public class Example
{
public List<CheckboxClass> theCheckboxes {get; private set;} // Reference THIS array
public Example()
{
theCheckboxes = new List<CheckboxClass>();
theCheckboxes.add(new Checkbox(true));
theCheckboxes.add(new Checkbox(false));
theCheckboxes.add(new Checkbox(true));
theCheckboxes.add(new Checkbox(false));
}
public class CheckboxClass
{
public Boolean theCheckbox {get; private set;}
public CheckboxClass(Boolean b)
{
this.theCheckbox = b;
}
}
}
Visualforce:
<apex:form>
<apex:pageBlock>
<apex:pageBlockTable value="{!theCheckboxes}" var="item">
<apex:column headerValue="The Checkboxes">
<apex:inputCheckbox value="{!item.theCheckbox}">
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
我没有测试过这个,但这是我相信你正在寻找的想法。