Один из способов сделать это - использовать элементы управления 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'};
}
}
Замена outputText на inputCheckbox и Stringмассив с логическим значением.Затем просто начните с apex: outputLink и установите флажок.
Вот пример использования класса для выполнения желаемой работы.
Apex:
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>
Я не проверял это, но, как мне кажется, вам нужна эта идея.