Render p: selectManyCheckbox с 10 столбцами

Я разработал интерфейс JEE/JSF для некоторых статистических данных. Я создал флажок, чтобы выбрать ссылки, которые пользователь хочет отобразить, но проблема в том, что я использую для создания флажка Arraylist на основе данных из моей базы данных.

И я не могу позиционировать их так, как хочу. Я хочу, чтобы после 10 флажков другие генерировались непосредственно на линию и т.д.

У меня есть этот результат

http://image.noelshack.com/fichiers/2013/48/1385458240-after.jpg

И я хочу, чтобы я мог это сделать

enter image description here

MTBFBEAN

private List<String> selectedReference = new ArrayList<String>();
private List<String> listReference = new ArrayList<String>(); 
private Boolean afficher = false; // Déclaration du bool pour le rendered de
                                    // ma vue dans MTBF

@SuppressWarnings("deprecation")
public StatisticsBeanMTBF() {
    this.beginDate = new Date(2001, 00, 01);
    List<ProductConfModel> listtmp = this.moduleGlobal.getProductConfModels(2);
    for (ProductConfModel pcm : listtmp) {

        this.listReference.add(pcm.getReference());
        }
    }

public void mTBFByType() {
    this.afficher = true;
    this.listMTBF = new ArrayList<StatistiquesMTBF>();
    List<StatistiquesMTBF> suspense = this.moduleGlobal.getMTBFByType(nbHeure, nbJour, NS, DAE, beginDate, endDate);
    for (StatistiquesMTBF smtbf : suspense) {
        for (String s : this.selectedReference) {
            if (smtbf.getReference().equals(s)) {
                this.listMTBF.add(smtbf);
            }

JSF XHTML

    <h:outputText value="Date début :* " />
                    <p:calendar value="#{statisticsBeanMTBF.beginDate}"
                        navigator="true" required="true" />
                    <h:outputText value="Date fin:* " />
                    <p:calendar value="#{statisticsBeanMTBF.endDate}" navigator="true"
                        required="true" />

                </h:panelGrid>
                <h:panelGrid columns="1">
                    <h:outputText value="Selectionner votre référence : " />

                    <p:selectManyCheckbox id="grid" columns="5"
                        value="#{statisticsBeanMTBF.selectedReference}">
                        <f:selectItems value="#{statisticsBeanMTBF.listReference}" />
                        </p:selectManyCheckbox> 
                </h:panelGrid>
                <p:separator />

Если кто-нибудь может мне помочь, было бы хорошо.

Спасибо!

Ответ 1

Я получаю этот результат, используя:

<h:panelGroup layout="block" styleClass="selection">
    <p:selectManyCheckbox layout="pageDirection" value="#{selection.selection}">
</h:panelGroup>

и установив каждый <tr>:

.selection tr {
   float: left;
    width: 33%;
} 

В вашем случае установите его на 10% и внешний контейнер на width: 100%.

Это выглядит так:

enter image description here

Ответ 2

Вы должны добавить layout="grid" в свой p:selectManyCheckbox в соответствии с этим . Вот так:

<p:selectManyCheckbox id="grid" layout="grid" columns="5" value="#{statisticsBeanMTBF.selectedReference}">
    <f:selectItems value="#{statisticsBeanMTBF.listReference}" />
</p:selectManyCheckbox>

EDIT:

Быстрый поиск в документах PrimeFaces показывает, что в версии 4.0 был добавлен columns. Если у вас нет этой версии или вы не можете ее обновить, вам нужно сделать это по-старому с помощью CSS.